build_push.yml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. name: CI
  2. on:
  3. push:
  4. branches:
  5. - master
  6. tags:
  7. - v*
  8. jobs:
  9. build:
  10. name: Build app
  11. runs-on: ubuntu-latest
  12. steps:
  13. - name: Cancel previous runs
  14. uses: styfle/[email protected]
  15. with:
  16. access_token: ${{ github.token }}
  17. all_but_latest: true
  18. - name: Clone repo
  19. uses: actions/checkout@v3
  20. - name: Validate Gradle Wrapper
  21. uses: gradle/wrapper-validation-action@v1
  22. - name: Set up JDK 11
  23. uses: actions/setup-java@v3
  24. with:
  25. java-version: 11
  26. distribution: adopt
  27. - name: Copy CI gradle.properties
  28. run: |
  29. mkdir -p ~/.gradle
  30. cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties
  31. - name: Build app
  32. uses: gradle/gradle-command-action@v2
  33. with:
  34. arguments: assembleStandardRelease
  35. - name: Run unit tests
  36. uses: gradle/gradle-command-action@v2
  37. with:
  38. arguments: test
  39. # Sign APK and create release for tags
  40. - name: Get tag name
  41. if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi'
  42. run: |
  43. set -x
  44. echo "VERSION_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
  45. - name: Sign APK
  46. if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi'
  47. uses: r0adkll/sign-android-release@v1
  48. with:
  49. releaseDirectory: app/build/outputs/apk/standard/release
  50. signingKeyBase64: ${{ secrets.SIGNING_KEY }}
  51. alias: ${{ secrets.ALIAS }}
  52. keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
  53. keyPassword: ${{ secrets.KEY_PASSWORD }}
  54. - name: Clean up build artifacts
  55. if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi'
  56. run: |
  57. set -e
  58. mv app/build/outputs/apk/standard/release/app-standard-universal-release-unsigned-signed.apk tachiyomi-${{ env.VERSION_TAG }}.apk
  59. sha=`sha256sum tachiyomi-${{ env.VERSION_TAG }}.apk | awk '{ print $1 }'`
  60. echo "APK_UNIVERSAL_SHA=$sha" >> $GITHUB_ENV
  61. cp app/build/outputs/apk/standard/release/app-standard-arm64-v8a-release-unsigned-signed.apk tachiyomi-arm64-v8a-${{ env.VERSION_TAG }}.apk
  62. sha=`sha256sum tachiyomi-arm64-v8a-${{ env.VERSION_TAG }}.apk | awk '{ print $1 }'`
  63. echo "APK_ARM64_V8A_SHA=$sha" >> $GITHUB_ENV
  64. cp app/build/outputs/apk/standard/release/app-standard-armeabi-v7a-release-unsigned-signed.apk tachiyomi-armeabi-v7a-${{ env.VERSION_TAG }}.apk
  65. sha=`sha256sum tachiyomi-armeabi-v7a-${{ env.VERSION_TAG }}.apk | awk '{ print $1 }'`
  66. echo "APK_ARMEABI_V7A_SHA=$sha" >> $GITHUB_ENV
  67. cp app/build/outputs/apk/standard/release/app-standard-x86-release-unsigned-signed.apk tachiyomi-x86-${{ env.VERSION_TAG }}.apk
  68. sha=`sha256sum tachiyomi-x86-${{ env.VERSION_TAG }}.apk | awk '{ print $1 }'`
  69. echo "APK_X86_SHA=$sha" >> $GITHUB_ENV
  70. - name: Create Release
  71. if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi'
  72. uses: softprops/action-gh-release@v1
  73. with:
  74. tag_name: ${{ env.VERSION_TAG }}
  75. name: Tachiyomi ${{ env.VERSION_TAG }}
  76. body: |
  77. ---
  78. ### Checksums
  79. | Variant | SHA-256 |
  80. | ------- | ------- |
  81. | Universal | ${{ env.APK_UNIVERSAL_SHA }}
  82. | arm64-v8a | ${{ env.APK_ARM64_V8A_SHA }}
  83. | armeabi-v7a | ${{ env.APK_ARMEABI_V7A_SHA }}
  84. | x86 | ${{ env.APK_X86_SHA }} |
  85. files: |
  86. tachiyomi-${{ env.VERSION_TAG }}.apk
  87. tachiyomi-arm64-v8a-${{ env.VERSION_TAG }}.apk
  88. tachiyomi-armeabi-v7a-${{ env.VERSION_TAG }}.apk
  89. tachiyomi-x86-${{ env.VERSION_TAG }}.apk
  90. draft: true
  91. prerelease: false
  92. env:
  93. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}