build-gradle-project.yml 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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: Build and publish Docker Image to GitHub Registry with custom Dockerfile
  19. uses: banool/gp-docker-action@1.0.2
  20. - name: Checkout project sources
  21. id: checkout_project
  22. uses: actions/checkout@v3
  23. # setup jdk 17
  24. - name: Set up JDK 17
  25. id: setup_java
  26. uses: actions/setup-java@v3
  27. with:
  28. java-version: '17'
  29. distribution: 'temurin'
  30. cache: gradle
  31. # setup gradle
  32. - name: Setup Gradle
  33. id: setup_gradle
  34. uses: gradle/gradle-build-action@v2
  35. # be sure it is executable
  36. - name: Grant execute permission for gradlew
  37. id: grant_gradle
  38. run: chmod +x gradlew
  39. # generate version number to env
  40. - name: Prepare Version Number
  41. id: prepare_version
  42. run: |
  43. export GRADLE_PATH="./config/version.app.prop";
  44. export GRADLE_FIELD_VMAJ="majorVersion"
  45. export GRADLE_FIELD_VMIN="minorVersion"
  46. export GRADLE_FIELD_VPAT="patchVersion"
  47. export VERSION_VMAJ_TMP=$(grep $GRADLE_FIELD_VMAJ $GRADLE_PATH | cat $2)
  48. export VERSION_VMIN_TMP=$(grep $GRADLE_FIELD_VMIN $GRADLE_PATH | cat $2)
  49. export VERSION_VMPAT_TMP=$(grep $GRADLE_FIELD_VPAT $GRADLE_PATH | cat $2)
  50. export VERSION_MAJOR=$(echo $VERSION_VMAJ_TMP | sed -e 's/^majorVersion=//' -e 's/"$//')
  51. export VERSION_MINOR=$(echo $VERSION_VMIN_TMP | sed -e 's/^minorVersion=//' -e 's/"$//')
  52. export VERSION_PATCH=$(echo $VERSION_VMPAT_TMP | sed -e 's/^patchVersion=//' -e 's/"$//')
  53. export APP_VERSION="$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH"
  54. echo "Release Version : $APP_VERSION"
  55. echo "GITHUB_APP_VERSION_NAME=$(echo $APP_VERSION)" >> $GITHUB_ENV
  56. # build apk for release
  57. - name: Build Release APK
  58. id: build_release_apk
  59. run: ./gradlew clean assembleRelease
  60. # publish github release
  61. - name: Create Release
  62. id: release
  63. uses: ncipollo/release-action@v1
  64. with:
  65. name: Release v ${{ env.GITHUB_APP_VERSION_NAME }}
  66. allowUpdates: true
  67. token: ${{ secrets.TOKEN }}
  68. tag: release-${{ env.GITHUB_APP_VERSION_NAME }}
  69. artifacts: './app/build/outputs/apk/release/app-release.apk, ./documentation/release-notes-$APP_VERSION.md, ./release.zip'
  70. # update wiki pages
  71. - name: Update wiki pages
  72. id: update_wiki_pages
  73. uses: OrlovM/Wiki-Action@v1
  74. with:
  75. path: 'documentation'
  76. token: ${{ secrets.TOKEN }}
  77. # done