Added push to Google Play as a release step (#4912)

* t1

* Only run on tag

* Added Google Play service account

* t3 - now with correct signing location

* whatsNewDirectory

* This is just to test if the automatic upload to Google Play is working

* Removed Android SDK

not sure it's needed for android build and signing

* Returned branch to master

Should be final!
This commit is contained in:
Yair Morgenstern
2021-08-20 01:11:41 +03:00
committed by GitHub
parent cb1c70f73b
commit cd1a25aeb3
3 changed files with 89 additions and 34 deletions

View File

@ -40,12 +40,76 @@ jobs:
- name: test - name: test
run: ./gradlew tests:test run: ./gradlew tests:test
- name: Get tag # We can then get the tag using ${{steps.tag.outputs.tag}} as below - 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/') if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
id: tag id: tag
uses: dawidd6/action-get-tag@v1 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<<EOF" >> $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 - name: release
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') 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}}; ./butler push deploy/Unciv-Linux64.zip yairm210/unciv:Linux64 --userversion ${{steps.tag.outputs.tag}};
./gradlew desktop:zipLinuxFilesForJar; ./gradlew desktop:zipLinuxFilesForJar;
mv desktop/build/libs/Unciv.jar deploy/Unciv.jar 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<<EOF" >> $GITHUB_ENV - name: Upload binaries to Github release
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
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
uses: svenstaro/upload-release-action@v2 uses: svenstaro/upload-release-action@v2
with: with:
@ -110,4 +144,21 @@ jobs:
# <--- Use environment variables that was created earlier - see https://github.com/svenstaro/upload-release-action # <--- Use environment variables that was created earlier - see https://github.com/svenstaro/upload-release-action
# Single-quotes do not solve the multiline problem. # Single-quotes do not solve the multiline problem.
body: | 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 }} ${{ env.RELEASE_BODY }}

View File

@ -3,8 +3,8 @@ package com.unciv.build
object BuildConfig { object BuildConfig {
const val kotlinVersion = "1.4.30" const val kotlinVersion = "1.4.30"
const val appName = "Unciv" const val appName = "Unciv"
const val appCodeNumber = 610 const val appCodeNumber = 611
const val appVersion = "3.16.5" const val appVersion = "3.16.5-googlePlayPushTest"
const val gdxVersion = "1.10.0" const val gdxVersion = "1.10.0"
const val roboVMVersion = "2.3.1" const val roboVMVersion = "2.3.1"

View File

@ -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 ## 3.16.5
By SomeTroglodyte: By SomeTroglodyte: