-
Notifications
You must be signed in to change notification settings - Fork 1
132 lines (116 loc) · 5.43 KB
/
publish-android.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: Android upload
on:
workflow_dispatch:
#release:
# types: [published]
#push:
# tags:
# - 'godot-dice-roller-[0-9]+.[0-9]+.[0-9]+'
# paths:
# - "version"
# - ".github/workflows/publish-android.yml"
# - "export_presets.android.example"
env:
ANDROID_SERVICE_ACCOUNT_JSON: ${{ secrets.ANDROID_SERVICE_ACCOUNT_JSON }}
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
ANDROID_KEYSTORE_ALIAS: ${{ secrets.ANDROID_KEYSTORE_ALIAS }}
ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }}
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
ANDROID_KEYSTORE_DEBUG_BASE64: ${{ secrets.ANDROID_KEYSTORE_DEBUG_BASE64 }}
SERVICE_ACCOUNT_JSON: ${{ secrets.ANDROID_SERVICE_ACCOUNT_JSON }}
WORKING_DIRECTORY: .
APPNAME: Godot Dice Roller
APPDOMAIN: net.canvoki.godot_dice_roller
jobs:
deploy:
#if: github.ref == 'refs/heads/prod'
runs-on: ubuntu-latest
permissions:
contents: write
container:
image: barichello/godot-ci:4.3
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Godot Asset Lib Client install
shell: bash
run: |
apt update
apt install imagemagick
pip install --user godot-asset-library-client
- name: Read version number and version code
run: |
python tools/android-metadata.py # generates android metadata from README.md, CHANGES.md and screenshots
GODOT_VERSION=$(godot-asset-library-client project-field godot_version)
APPNAME=$(cat metadata/en-US/title.txt)
VERSION_NAME=$(godot-asset-library-client project-field project_version)
IFS='.' read -r -a v <<<"$VERSION_NAME"
VERSION_CODE=$(printf "%03d" ${v[*]})
echo "GODOT_VERSION=$GODOT_VERSION" >> $GITHUB_ENV
echo "APPNAME=$APPNAME" >> $GITHUB_ENV
echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV
echo "VERSION_CODE=$VERSION_CODE" >> $GITHUB_ENV
- name: Create service-account.json
if: false
run: echo $SERVICE_ACCOUNT_JSON > service-account.json
- name: Create keystores
if: false
run: |
echo $ANDROID_KEYSTORE_BASE64 | base64 --decode > release.keystore
echo $ANDROID_KEYSTORE_DEBUG_BASE64 | base64 --decode > debug.keystore
- name: Create export_presets.cfg and inject values
run: |
sed -i "s|VERSION_CODE|$VERSION_CODE|g" $WORKING_DIRECTORY/export_presets.cfg
sed -i "s|VERSION_NAME|$VERSION_NAME|g" $WORKING_DIRECTORY/export_presets.cfg
sed -i "s|APPNAME|$APPNAME|g" $WORKING_DIRECTORY/export_presets.cfg
- name: Create export_credentials.cfg and inject values
if: false
run: |
mkdir $WORKING_DIRECTORY/.godot/
cp $WORKING_DIRECTORY/export_credentials.android.example $WORKING_DIRECTORY/.godot/export_credentials.cfg
sed -i "s|KEYSTORE_RELEASE_PATH|$GITHUB_WORKSPACE/release.keystore|g" $WORKING_DIRECTORY/.godot/export_credentials.cfg
sed -i "s|KEYSTORE_DEBUG_PATH|$GITHUB_WORKSPACE/debug.keystore|g" $WORKING_DIRECTORY/.godot/export_credentials.cfg
sed -i "s|ANDROID_KEYSTORE_ALIAS|$ANDROID_KEYSTORE_ALIAS|g" $WORKING_DIRECTORY/.godot/export_credentials.cfg
sed -i "s|ANDROID_KEYSTORE_PASSWORD|$ANDROID_KEYSTORE_PASSWORD|g" $WORKING_DIRECTORY/.godot/export_credentials.cfg
- name: Godot Android export (barichello)
run: godot -v --export-release "Android" --headless
- name: Godot Android export (dulvui)
if: false
uses: dulvui/godot-android-export@v4.0.4
with:
godot-version: ${{ env.GODOT_VERSION }}
working-directory: $WORKING_DIRECTORY
- name: Publish to Play Store
if: false
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJson: service-account.json
packageName: ${{ env.APPDOMAIN}}
releaseFiles: ${{ env.APPNAME }}.aab
track: "internal"
status: completed
# GITHUB RELEASES
- name: Bundle aab to apk (signed)
if: false
run: |
wget -q https://github.com/google/bundletool/releases/download/1.14.0/bundletool-all-1.14.0.jar
java -jar bundletool-all-1.14.0.jar build-apks --bundle=${{ env.APPNAME }}.aab --output=${{ env.APPNAME }}.apks \
--ks=release.keystore --ks-pass=pass:"$ANDROID_STORE_PASSWORD" --ks-key-alias="$ANDROID_KEYSTORE_ALIAS" \
--key-pass=pass:"$ANDROID_KEYSTORE_PASSWORD" --mode=universal
unzip -p ${{ env.APPNAME }}.apks universal.apk > ${{ env.APPNAME }}.apk
# GITHUB RELEASES
- name: Bundle aab to apk (unsigned)
run: |
wget -q https://github.com/google/bundletool/releases/download/1.14.0/bundletool-all-1.14.0.jar
java -jar bundletool-all-1.14.0.jar build-apks --bundle=${{ env.APPNAME }}.aab --output=${{ env.APPNAME }}.apks \
--mode=universal
unzip -p ${{ env.APPNAME }}.apks universal.apk > ${{ env.APPNAME }}.apk
- name: Upload binaries to Github release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ./${{ env.APPNAME }}.apk
asset_name: ${{ env.APPNAME }}.apk
tag: ${{ env.VERSION_NAME }}-${{ env.VERSION_CODE }}
overwrite: true
body: "${{ env.APPNAME }} - version: ${{ env.VERSION_NAME }} code: ${{ env.VERSION_CODE }}"