build-gradle-project.yml 3.1 KB

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