diff --git a/.github/workflows/buildAndDeploy.yml b/.github/workflows/buildAndDeploy.yml index 6c36410ba8..69c48d4c3e 100644 --- a/.github/workflows/buildAndDeploy.yml +++ b/.github/workflows/buildAndDeploy.yml @@ -40,12 +40,76 @@ jobs: - name: test run: ./gradlew tests:test - + - name: Get tag # We can then get the tag using ${{steps.tag.outputs.tag}} as below if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') id: tag uses: dawidd6/action-get-tag@v1 + +# RELEASE + + - name: Read release.md and use it as a body of new release. This will fail for patch releases, since they have no readme. + continue-on-error: true + if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') + id: read_release + shell: bash + run: | + ## To test this in Windows PS: cat .\changelog.md | wsl grep -Pzo --color '\\#{2}.3.15.7[^\\#]*?\\#{2}' | wsl head -n -2 + r=$(grep -Pzo '\#{2}.${{steps.tag.outputs.tag}}[^\#]*\#' changelog.md) # grep to get only our release + r=$(echo "$r" | head -n -2 | tail -n +3) + + ## See https://trstringer.com/github-actions-multiline-strings/ + + echo "--- Set variable manually in github env ---" + + echo "RELEASE_BODY<> $GITHUB_ENV + echo "$r" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV + + +## ANDROID + + - name: Prepare files for Google Play upload + continue-on-error: true + if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') + shell: bash + run: | + mkdir whatsNewDirectory + echo "${{ env.RELEASE_BODY }}" > whatsNewDirectory/whatsnew-en-US + ./gradlew :android:bundleRelease + ## New file is now in android/build/outputs/bundle/release + + + - uses: r0adkll/sign-android-release@v1 + if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') + name: Sign app APK + # ID used to access action output + id: sign_app + with: + releaseDirectory: android/build/outputs/bundle/release + signingKeyBase64: ${{ secrets.BUNDLE_SIGNING_KEY_BASE64 }} + alias: ${{ secrets.BUNDLE_SIGNING_KEY_ALIAS }} + keyStorePassword: ${{ secrets.BUNDLE_SIGNING_KEYSTORE_PASSWORD }} + keyPassword: ${{ secrets.BUNDLE_SIGNING_KEY_PASSWORD }} + #env: + # override default build-tools version (29.0.3) -- optional + #BUILD_TOOLS_VERSION: "30.0.2" + + - name: Upload apk to google play + if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') + continue-on-error: true + uses: r0adkll/upload-google-play@v1 + with: + serviceAccountJsonPlainText: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON }} + packageName: com.unciv.app + releaseFiles: android/build/outputs/bundle/release/Unciv-release.aab + track: production + userFraction: 0.1 + whatsNewDirectory: whatsNewDirectory + + +## DESKTOP - name: release if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') @@ -66,39 +130,9 @@ jobs: ./butler push deploy/Unciv-Linux64.zip yairm210/unciv:Linux64 --userversion ${{steps.tag.outputs.tag}}; ./gradlew desktop:zipLinuxFilesForJar; mv desktop/build/libs/Unciv.jar deploy/Unciv.jar - - - name: Read release.md and use it as a body of new release. This will fail for patch releases, since they have no readme. - continue-on-error: true - if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') - id: read_release - shell: bash - run: | - ## To test this in Windows PS: cat .\changelog.md | wsl grep -Pzo --color '\\#{2}.3.15.7[^\\#]*?\\#{2}' | wsl head -n -2 - r=$(grep -Pzo '\#{2}.${{steps.tag.outputs.tag}}[^\#]*\#' changelog.md) # grep to get only our release - r=$(echo "$r" | head -n -2) - ## See https://trstringer.com/github-actions-multiline-strings/ - - echo "--- Set variable manually in github env ---" - echo "RELEASE_BODY<> $GITHUB_ENV - echo "$r" >> $GITHUB_ENV - echo "EOF" >> $GITHUB_ENV - - - name: Post announcement on Discord - continue-on-error: true - ## On patch releases, don't notify Discord - if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') && env.RELEASE_BODY != '' - env: - DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@0.3.2 - with: - args: | # See https://discordjs.guide/miscellaneous/parsing-mention-arguments.html#how-discord-mentions-work - <@&663705024265715743> - ${{ env.RELEASE_BODY }} - - - - name: Upload binaries to release + - name: Upload binaries to Github release if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') uses: svenstaro/upload-release-action@v2 with: @@ -110,4 +144,21 @@ jobs: # <--- Use environment variables that was created earlier - see https://github.com/svenstaro/upload-release-action # Single-quotes do not solve the multiline problem. body: | + ## ${{steps.tag.outputs.tag}} + + ${{ env.RELEASE_BODY }} + + + - name: Post announcement on Discord + continue-on-error: true + ## On patch releases, don't notify Discord + if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') && env.RELEASE_BODY != '' + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} + uses: Ilshidur/action-discord@0.3.2 + with: + args: | # See https://discordjs.guide/miscellaneous/parsing-mention-arguments.html#how-discord-mentions-work + <@&663705024265715743> + *${{steps.tag.outputs.tag}} rolling out!* + ${{ env.RELEASE_BODY }} diff --git a/buildSrc/src/main/kotlin/BuildConfig.kt b/buildSrc/src/main/kotlin/BuildConfig.kt index ba5cba23a1..1c8c7c1469 100644 --- a/buildSrc/src/main/kotlin/BuildConfig.kt +++ b/buildSrc/src/main/kotlin/BuildConfig.kt @@ -3,8 +3,8 @@ package com.unciv.build object BuildConfig { const val kotlinVersion = "1.4.30" const val appName = "Unciv" - const val appCodeNumber = 610 - const val appVersion = "3.16.5" + const val appCodeNumber = 611 + const val appVersion = "3.16.5-googlePlayPushTest" const val gdxVersion = "1.10.0" const val roboVMVersion = "2.3.1" diff --git a/changelog.md b/changelog.md index 25c99a41e7..9a82e515ac 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +## 3.16.5-googlePlayPushTest + +This is just to test if the automatic upload to Google Play is working + ## 3.16.5 By SomeTroglodyte: