main.yml 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. name: build
  2. on: [push, pull_request]
  3. jobs:
  4. build-android:
  5. runs-on: ubuntu-latest
  6. strategy:
  7. matrix:
  8. build_type: [Debug, Release]
  9. env:
  10. GRADLE_OPTS: "-Dorg.gradle.jvmargs='-Xmx4G'"
  11. steps:
  12. - name: Prepare Environment
  13. run: sudo apt-get update && curl -Lo kitware-archive.sh https://apt.kitware.com/kitware-archive.sh && sudo bash ./kitware-archive.sh
  14. - name: Install Dependencies
  15. run: sudo apt-get install ninja-build cmake
  16. - name: Checkout
  17. uses: actions/checkout@v4
  18. with:
  19. submodules: true
  20. - name: Setup Java 17
  21. uses: actions/setup-java@v4
  22. with:
  23. distribution: adopt-hotspot
  24. java-version: 17
  25. cache: gradle
  26. - name: Build Normal Flavor
  27. run: bash ./gradlew assembleNormalRecord${{ matrix.build_type }}
  28. - name: Build Release-specific Binaries
  29. if: ${{ matrix.build_type == 'Release' }}
  30. run: bash ./gradlew bundleNormalNoRecordRelease bundleEmbedRecordRelease bundleEmbedNoRecordRelease
  31. - name: Artifact (Normal debug APK)
  32. if: ${{ matrix.build_type == 'Debug' }}
  33. uses: actions/upload-artifact@v4
  34. with:
  35. name: love-android-debug.apk
  36. path: app/build/outputs/apk/normalRecord/debug/app-normal-record-debug.apk
  37. - name: Artifact (Normal unsigned APK)
  38. if: ${{ matrix.build_type == 'Release' }}
  39. uses: actions/upload-artifact@v4
  40. with:
  41. name: love-android.apk
  42. path: app/build/outputs/apk/normalRecord/release/app-normal-record-release-unsigned.apk
  43. - name: Artifact (Normal AAB w/o recording)
  44. if: ${{ matrix.build_type == 'Release' }}
  45. uses: actions/upload-artifact@v4
  46. with:
  47. name: love-android-ps.aab
  48. path: app/build/outputs/bundle/normalNoRecordRelease/app-normal-noRecord-release.aab
  49. - name: Artifact (Embed AAB)
  50. if: ${{ matrix.build_type == 'Release' }}
  51. uses: actions/upload-artifact@v4
  52. with:
  53. name: love-android-embed-record.aab
  54. path: app/build/outputs/bundle/embedRecordRelease/app-embed-record-release.aab
  55. - name: Artifact (Embed AAB w/o recording)
  56. if: ${{ matrix.build_type == 'Release' }}
  57. uses: actions/upload-artifact@v4
  58. with:
  59. name: love-android-embed.aab
  60. path: app/build/outputs/bundle/embedNoRecordRelease/app-embed-noRecord-release.aab
  61. - name: Artifact (Debug symbols)
  62. uses: actions/upload-artifact@v4
  63. with:
  64. name: love-android-unstripped-debugsyms-${{ matrix.build_type }}
  65. path: app/build/intermediates/cxx