Files
love/.github/workflows/main.yml
T
2021-06-06 11:43:54 -03:00

118 lines
3.8 KiB
YAML

name: continuous-integration
on: [push, pull_request]
jobs:
linux-os:
runs-on: ubuntu-18.04
steps:
- name: Update APT
run: sudo apt-get update
- name: Install Dependencies
run: |
sudo apt-get install --assume-yes build-essential autotools-dev automake libtool pkg-config \
libfreetype6-dev libluajit-5.1-dev libsdl2-dev libopenal-dev \
libogg-dev libvorbis-dev libmodplug-dev libmpg123-dev libtheora-dev
- name: Checkout
uses: actions/checkout@v2
- name: Pre-Configure
run: $PWD/platform/unix/automagic
- name: Configure
run: mkdir build && cd build && ../configure
- name: Build
run: cd build && make -j2
- name: Prepare appimagetool
run: |
cd build &&
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O appimagetool &&
chmod +x appimagetool &&
sudo apt install -y appstream
- name: Clone love-appimages
uses: actions/checkout@v2
with:
path: build/love-appimages
repository: pfirsich/love-appimages
- name: Build AppImage
run: |
cd build &&
python3 love-appimages/build.py .. AppDir --builddir build --appimage love.AppImage
- name: Artifact
uses: actions/upload-artifact@v2-preview
with:
name: love.AppImage
path: build/love.AppImage
windows-os:
runs-on: windows-latest
strategy:
matrix:
platform: [Win32, x64]
steps:
- name: Clone Megasource
uses: actions/checkout@v2
with:
path: megasource
repository: love2d/megasource
ref: 12.x
- name: Checkout
uses: actions/checkout@v2
with:
path: megasource/libs/love
- name: Configure
shell: cmd
env:
PLATFORM: ${{ matrix.platform }}
run: cmake -Bbuild -Hmegasource -T v142 -A %PLATFORM% -DCMAKE_INSTALL_PREFIX=%CD%\install
- name: Install
shell: cmd
run: cmake --build build --config Release --target install -j2
- name: Artifact
uses: actions/upload-artifact@v1
with:
name: love-windows-${{ matrix.platform }}
path: install
macOS:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Clone Dependencies
uses: actions/checkout@v2
with:
path: apple-dependencies
repository: slime73/love-apple-dependencies
ref: main
- name: Move Dependencies
run:
mv apple-dependencies/macOS/Frameworks platform/xcode/macosx
- name: Build
run:
xcodebuild clean archive -project platform/xcode/love.xcodeproj -scheme love-macosx -configuration Release -archivePath love-macos.xcarchive
- name: Export Archive
run:
xcodebuild -exportArchive -archivePath love-macos.xcarchive -exportPath love-macos -exportOptionsPlist platform/xcode/macosx/macos-copy-app.plist
- name: Zip Archive
run:
ditto -c -k --sequesterRsrc --keepParent love-macos/love.app love-macos.zip
- name: Artifact
uses: actions/upload-artifact@v2
with:
name: love-macos
path: love-macos.zip
iOS-Simulator:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Clone Dependencies
uses: actions/checkout@v2
with:
path: apple-dependencies
repository: slime73/love-apple-dependencies
ref: main
- name: Move Dependencies
run: |
mv apple-dependencies/iOS/include platform/xcode/ios
mv apple-dependencies/iOS/libraries platform/xcode/ios
- name: Build
run:
xcodebuild -project platform/xcode/love.xcodeproj -scheme love-ios -configuration Release -destination 'platform=iOS Simulator,name=iPhone 11'