diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 89458c79a..9adf16075 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -482,3 +482,76 @@ jobs: - name: Build run: xcodebuild -project platform/xcode/love.xcodeproj -scheme love-ios -configuration Release -destination 'platform=iOS Simulator,name=iPhone 11' + Android: + runs-on: ubuntu-latest + strategy: + matrix: + build_type: [Debug, Release] + env: + JAVA_OPTS: '-Xmx10G' + steps: + - name: Prepare Environment + run: sudo apt-get update && curl -Lfo kitware-archive.sh https://apt.kitware.com/kitware-archive.sh && sudo bash ./kitware-archive.sh + - name: Install Dependencies + run: sudo apt-get install ninja-build cmake + - name: Checkout love-android + uses: actions/checkout@v4 + with: + repository: love2d/love-android + submodules: false + - name: Setup Java 17 + uses: actions/setup-java@v4 + with: + distribution: adopt-hotspot + java-version: 17 + cache: gradle + - name: Clone Megasource + uses: actions/checkout@v4 + with: + path: app/src/main/cpp/megasource + repository: love2d/megasource + ref: main + - name: Checkout + uses: actions/checkout@v4 + with: + path: app/src/main/cpp/love + - name: Build Normal Flavor + run: bash ./gradlew assembleNormalRecord${{ matrix.build_type }} + - name: Build Release-specific Binaries + if: ${{ matrix.build_type == 'Release' }} + run: bash ./gradlew bundleNormalNoRecordRelease bundleEmbedRecordRelease bundleEmbedNoRecordRelease + - name: Artifact (Normal debug APK) + if: ${{ matrix.build_type == 'Debug' }} + uses: actions/upload-artifact@v4 + with: + name: love-android-debug.apk + path: app/build/outputs/apk/normalRecord/debug/app-normal-record-debug.apk + - name: Artifact (Normal unsigned APK) + if: ${{ matrix.build_type == 'Release' }} + uses: actions/upload-artifact@v4 + with: + name: love-android.apk + path: app/build/outputs/apk/normalRecord/release/app-normal-record-release-unsigned.apk + - name: Artifact (Normal AAB w/o recording) + if: ${{ matrix.build_type == 'Release' }} + uses: actions/upload-artifact@v4 + with: + name: love-android-ps.aab + path: app/build/outputs/bundle/normalNoRecordRelease/app-normal-noRecord-release.aab + - name: Artifact (Embed AAB) + if: ${{ matrix.build_type == 'Release' }} + uses: actions/upload-artifact@v4 + with: + name: love-android-embed-record.aab + path: app/build/outputs/bundle/embedRecordRelease/app-embed-record-release.aab + - name: Artifact (Embed AAB w/o recording) + if: ${{ matrix.build_type == 'Release' }} + uses: actions/upload-artifact@v4 + with: + name: love-android-embed.aab + path: app/build/outputs/bundle/embedNoRecordRelease/app-embed-noRecord-release.aab + - name: Artifact (Debug symbols) + uses: actions/upload-artifact@v4 + with: + name: love-android-unstripped-debugsyms-${{ matrix.build_type }} + path: app/build/intermediates/cxx