-
Notifications
You must be signed in to change notification settings - Fork 15
91 lines (77 loc) · 3.3 KB
/
android_release_build.yml
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
name: Android Release Build
on:
release:
types: [ published ]
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./android
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Install Bundletool
run: |
wget https://github.com/google/bundletool/releases/download/1.17.0/bundletool-all-1.17.0.jar -O /usr/local/bin/bundletool.jar
- name: Decode Keystore
env:
ENCODED_KEYSTORE: ${{ secrets.ANDROID_RELEASE_KEYSTORE_BASE64 }}
run: |
echo $ENCODED_KEYSTORE > keystore_base64.txt
base64 -d keystore_base64.txt > ${{ runner.temp }}/keystore.jks
- name: Build AAB
env:
RUNNING_ENV: release_workflow
DECODED_KEYSTORE_PATH: ${{ runner.temp }}/keystore.jks
RELEASE_KEY_ALIAS: ${{ secrets.ANDROID_RELEASE_KEY_ALIAS }}
RELEASE_KEY_PASSWORD: ${{ secrets.ANDROID_RELEASE_KEY_PASSWORD }}
RELEASE_STORE_PASSWORD: ${{ secrets.ANDROID_RELEASE_STORE_PASSWORD }}
EMERGE_API_TOKEN: ${{ secrets.EMERGE_API_KEY }}
REAPER_API_KEY: ${{ secrets.REAPER_API_KEY }}
ANDROID_DISTRIBUTION_API_KEY: ${{ secrets.ANDROID_DISTRIBUTION_API_KEY }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
run: ./gradlew :app:bundleRelease
- name: Convert AAB to APK
run: |
java -jar /usr/local/bin/bundletool.jar build-apks \
--mode=universal \
--bundle=./app/build/outputs/bundle/release/app-release.aab \
--output=${{ runner.temp }}/app-release.apks \
--ks=${{ runner.temp }}/keystore.jks \
--ks-pass=pass:${{ secrets.ANDROID_RELEASE_STORE_PASSWORD }} \
--ks-key-alias=${{ secrets.ANDROID_RELEASE_KEY_ALIAS }} \
--key-pass=pass:${{ secrets.ANDROID_RELEASE_KEY_PASSWORD }}
unzip ${{ runner.temp }}/app-release.apks -d ${{ runner.temp }}/apks
- name: Upload .apk
uses: actions/upload-artifact@v4
with:
path: ${{ runner.temp }}/apks/universal.apk
name: hackernews-universal-${{github.sha}}.apk
if-no-files-found: error
- name: Add APK to GitHub release
uses: softprops/action-gh-release@v2
with:
fail_on_unmatched_files: true
# see https://github.com/softprops/action-gh-release/issues/158
files: |
${{ runner.temp }}/apks/universal.apk
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-west-1
- name: Extract version from tag
run: echo "VERSION_NAME=$(echo ${{ github.event.release.tag_name }} | sed 's/android-//')" >> $GITHUB_ENV
- name: Upload AAB to S3
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: |
aws s3 cp app/build/outputs/bundle/release/app-release.aab s3://hn-artifacts/app-release-${{ env.VERSION_NAME }}.aab