build.yml 2.9 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. if: "!startsWith(github.event.head_commit.message, '[SKIP CI]')"
  22. runs-on: ubuntu-latest
  23. steps:
  24. - name: Cancel previous runs
  25. uses: styfle/[email protected]
  26. with:
  27. access_token: ${{ github.token }}
  28. - name: Clone repo
  29. uses: actions/checkout@v2
  30. - name: Set up JDK 11
  31. uses: actions/setup-java@v1
  32. with:
  33. java-version: 11
  34. - name: Copy CI gradle.properties
  35. run: |
  36. mkdir -p ~/.gradle
  37. cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties
  38. - name: Build app
  39. uses: eskatos/gradle-command-action@v1
  40. with:
  41. arguments: assembleStandardRelease
  42. wrapper-cache-enabled: true
  43. dependencies-cache-enabled: true
  44. configuration-cache-enabled: true
  45. # Sign APK and create release for tags
  46. - name: Get tag name
  47. if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi'
  48. id: get_tag_name
  49. run: |
  50. set -x
  51. echo "VERSION_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
  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: Create release
  62. if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi'
  63. id: create_release
  64. uses: actions/create-release@v1
  65. env:
  66. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  67. with:
  68. tag_name: ${{ env.VERSION_TAG }}
  69. release_name: Tachiyomi ${{ env.VERSION_TAG }}
  70. draft: true
  71. prerelease: false
  72. - name: Upload APK to release
  73. if: startsWith(github.ref, 'refs/tags/') && github.repository == 'tachiyomiorg/tachiyomi'
  74. uses: actions/upload-release-asset@v1
  75. env:
  76. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  77. with:
  78. upload_url: ${{ steps.create_release.outputs.upload_url }}
  79. asset_path: ${{ env.SIGNED_RELEASE_FILE }}
  80. asset_name: tachiyomi-${{ env.VERSION_TAG }}.apk
  81. asset_content_type: application/vnd.android.package-archive