main.yml 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. name: Android CI
  2. on:
  3. push:
  4. branches: [ master ]
  5. pull_request:
  6. branches: [ master ]
  7. jobs:
  8. build:
  9. runs-on: ubuntu-latest
  10. env:
  11. SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
  12. steps:
  13. - uses: actions/checkout@v2
  14. - name: set up JDK 1.8
  15. uses: actions/setup-java@v2
  16. with:
  17. java-version: 1.8
  18. distribution: 'adopt'
  19. - name: Install NDK
  20. run: echo "y" | sudo /usr/local/lib/android/sdk/tools/bin/sdkmanager --install "ndk;21.0.6113669" --sdk_root=${ANDROID_SDK_ROOT}
  21. - name: Validate checksum gradle wrapper
  22. uses: gradle/wrapper-validation-action@v1
  23. - name: Gradle cache
  24. id: cache
  25. uses: actions/cache@v2
  26. with:
  27. path: ~/.gradle/caches
  28. key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
  29. restore-keys: |
  30. ${{ runner.os }}-gradle-
  31. - name: Build Debug APK
  32. run: |
  33. chmod +x gradlew
  34. ./gradlew assembleDebug
  35. - name: Build Release AAB
  36. id: buildRelease
  37. run: ./gradlew bundleRelease
  38. - name: Sign AAB
  39. id: sign
  40. uses: r0adkll/sign-android-release@v1
  41. with:
  42. releaseDirectory: app/build/outputs/bundle/release
  43. signingKeyBase64: ${{ secrets.SIGNING_KEY }}
  44. alias: ${{ secrets.ALIAS }}
  45. keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
  46. keyPassword: ${{ secrets.KEY_PASSWORD }}
  47. - name: Upload AAB/APK
  48. id: uploadArtifact
  49. uses: actions/upload-artifact@v1
  50. with:
  51. name: artifact
  52. path: |
  53. app/build/outputs/apk/release/app-release.apk
  54. app/build/outputs/bundle/release/app-release.aab
  55. - name: Releasing using Hub
  56. uses: ShaunLWM/action-release-debugapk@master
  57. env:
  58. GITHUB_TOKEN: ${{ secrets.GITHUB_RElEASE_TOKEN }}
  59. APP_FOLDER: app
  60. RELEASE_TITLE: Version
  61. - name: Create service_account.json
  62. id: createServiceAccount
  63. run: echo '${{ secrets.SERVICE_ACCOUNT_JSON }}' > service_account.json
  64. - name: Deploy to Play Store (BETA)
  65. id: deploy
  66. uses: r0adkll/upload-google-play@v1
  67. with:
  68. serviceAccountJson: service_account.json
  69. packageName: com.package
  70. releaseFile: app/build/outputs/bundle/release/app-release.aab
  71. track: beta
  72. whatsNewDirectory: whatsnew/
  73. - name: Notify on Slack
  74. uses: act10ns/slack@v1
  75. with:
  76. status: ${{ job.status }}
  77. steps: ${{ toJson(steps) }}
  78. if: always()