build.yml 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. name: CI
  2. on:
  3. push:
  4. branches:
  5. - master
  6. tags:
  7. - v*
  8. pull_request:
  9. jobs:
  10. check_wrapper:
  11. name: Validate Gradle Wrapper
  12. runs-on: ubuntu-latest
  13. steps:
  14. - name: Clone repo
  15. uses: actions/checkout@v2
  16. - name: Validate Gradle Wrapper
  17. uses: gradle/wrapper-validation-action@v1
  18. build:
  19. name: Build app
  20. needs: check_wrapper
  21. runs-on: ubuntu-latest
  22. steps:
  23. - name: Cancel previous runs
  24. uses: styfle/[email protected]
  25. with:
  26. access_token: ${{ github.token }}
  27. - name: Clone repo
  28. uses: actions/checkout@v2
  29. - name: Set up JDK 11
  30. uses: actions/setup-java@v1
  31. with:
  32. java-version: 11
  33. - name: Copy CI gradle.properties
  34. run: |
  35. mkdir -p ~/.gradle
  36. cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties
  37. - name: Build app
  38. uses: eskatos/gradle-command-action@v1
  39. with:
  40. arguments: assembleStandardRelease
  41. wrapper-cache-enabled: true
  42. dependencies-cache-enabled: true
  43. configuration-cache-enabled: true
  44. # Sign APK and create release for tags
  45. - name: Get tag name
  46. if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi'
  47. id: get_tag_name
  48. run: |
  49. set -x
  50. echo "VERSION_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
  51. # TODO: need to support multiple APKs
  52. - name: Sign APK
  53. if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi'
  54. uses: r0adkll/sign-android-release@v1
  55. with:
  56. releaseDirectory: app/build/outputs/apk/standard/release
  57. signingKeyBase64: ${{ secrets.SIGNING_KEY }}
  58. alias: ${{ secrets.ALIAS }}
  59. keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
  60. keyPassword: ${{ secrets.KEY_PASSWORD }}
  61. - name: Clean up build artifacts
  62. if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi'
  63. run: |
  64. cp ${{ env.SIGNED_RELEASE_FILE }} tachiyomi-${{ env.VERSION_TAG }}.apk
  65. md5=`md5sum tachiyomi-${{ env.VERSION_TAG }}.apk | awk '{ print $1 }'`
  66. echo "APK_MD5=$md5" >> $GITHUB_ENV
  67. - name: Create Release
  68. if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi'
  69. uses: softprops/action-gh-release@v1
  70. with:
  71. tag_name: ${{ env.VERSION_TAG }}
  72. name: Tachiyomi ${{ env.VERSION_TAG }}
  73. body: |
  74. MD5: ${{ env.APK_MD5 }}
  75. files: |
  76. tachiyomi-${{ env.VERSION_TAG }}.apk
  77. draft: true
  78. prerelease: false
  79. env:
  80. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}