build-gradle-project.yml 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. name: Build Gradle project
  2. # on settings
  3. on:
  4. push:
  5. branches:
  6. - main
  7. # jobs
  8. jobs:
  9. build-gradle-project:
  10. runs-on: ubuntu-latest
  11. # permissions
  12. permissions:
  13. contents: write
  14. deployments: write
  15. pages: write
  16. # job steps
  17. steps:
  18. - name: Checkout project sources
  19. id: checkout_project
  20. uses: actions/checkout@v3
  21. # setup jdk 17
  22. - name: Set up JDK 17
  23. id: setup_java
  24. uses: actions/setup-java@v3
  25. with:
  26. java-version: '17'
  27. distribution: 'temurin'
  28. cache: gradle
  29. # setup gradle
  30. - name: Setup Gradle
  31. id: setup_gradle
  32. uses: gradle/gradle-build-action@v2
  33. # be sure it is executable
  34. - name: Grant execute permission for gradlew
  35. id: grant_gradle
  36. run: chmod +x gradlew
  37. # generate version number to env
  38. - name: Prepare Version Number
  39. id: prepare_version
  40. run: |
  41. export GRADLE_PATH="./config/version.app.prop";
  42. export GRADLE_FIELD_VMAJ="majorVersion"
  43. export GRADLE_FIELD_VMIN="minorVersion"
  44. export GRADLE_FIELD_VPAT="patchVersion"
  45. export VERSION_VMAJ_TMP=$(grep $GRADLE_FIELD_VMAJ $GRADLE_PATH | cat $2)
  46. export VERSION_VMIN_TMP=$(grep $GRADLE_FIELD_VMIN $GRADLE_PATH | cat $2)
  47. export VERSION_VMPAT_TMP=$(grep $GRADLE_FIELD_VPAT $GRADLE_PATH | cat $2)
  48. export VERSION_MAJOR=$(echo $VERSION_VMAJ_TMP | sed -e 's/^majorVersion=//' -e 's/"$//')
  49. export VERSION_MINOR=$(echo $VERSION_VMIN_TMP | sed -e 's/^minorVersion=//' -e 's/"$//')
  50. export VERSION_PATCH=$(echo $VERSION_VMPAT_TMP | sed -e 's/^patchVersion=//' -e 's/"$//')
  51. export APP_VERSION="$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH"
  52. echo "Release Version : $APP_VERSION"
  53. echo "GITHUB_APP_VERSION_NAME=$(echo $APP_VERSION)" >> $GITHUB_ENV
  54. # build apk for release
  55. - name: Build Release APK
  56. id: build_release_apk
  57. run: ./gradlew clean assembleRelease
  58. # publish github release
  59. - name: Create Release
  60. id: release
  61. uses: ncipollo/release-action@v1
  62. with:
  63. name: Release v ${{ env.GITHUB_APP_VERSION_NAME }}
  64. allowUpdates: true
  65. token: ${{ secrets.TOKEN }}
  66. tag: release-${{ env.GITHUB_APP_VERSION_NAME }}
  67. artifacts: './app/build/outputs/apk/release/app-release.apk, ./documentation/release-notes-$APP_VERSION.md, ./release.zip'
  68. # update wiki pages
  69. - name: Update wiki pages
  70. id: update_wiki_pages
  71. uses: OrlovM/Wiki-Action@v1
  72. with:
  73. path: 'documentation'
  74. token: ${{ secrets.TOKEN }}
  75. # done