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'