mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-19 12:18:53 +07:00
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:
115
.github/workflows/buildAndDeploy.yml
vendored
115
.github/workflows/buildAndDeploy.yml
vendored
@ -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 }}
|
||||||
|
@ -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"
|
||||||
|
@ -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:
|
||||||
|
Reference in New Issue
Block a user