Skip to content

Commit 874f8f1

Browse files
Create test_release2.yml
1 parent c885905 commit 874f8f1

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: Test Release 2
2+
on:
3+
workflow_dispatch:
4+
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: Get the source
10+
uses: actions/[email protected]
11+
12+
- name: Set up JDK 17
13+
uses: actions/setup-java@v3
14+
with:
15+
distribution: 'temurin'
16+
java-version: '17'
17+
18+
- name: Cache Gradle dependencies
19+
uses: actions/[email protected]
20+
with:
21+
path: |
22+
~/.gradle/caches
23+
~/.gradle/wrapper
24+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
25+
restore-keys: |
26+
${{ runner.os }}-gradle-
27+
28+
- name: Grant execute permission for gradlew
29+
run: chmod +x ./gradlew
30+
31+
- name: Generate Release AAB
32+
run: ./gradlew bundleRelease
33+
34+
- name: Sign AAB with jarsigner
35+
id: sign_aab
36+
env:
37+
KEYSTORE_FILE: ${{ secrets.KEYSTORE_FILE }}
38+
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
39+
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
40+
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
41+
run: |
42+
set -e
43+
AAB_SRC="app/build/outputs/bundle/release/app-release.aab"
44+
AAB_DST="app/build/outputs/bundle/release/app-release-signed.aab"
45+
46+
if [ ! -f "$AAB_SRC" ]; then
47+
echo "Error: AAB not found at $AAB_SRC"
48+
exit 1
49+
fi
50+
51+
# Decode the base64 keystore secret into a file
52+
echo "$KEYSTORE_FILE" | base64 --decode > upload-keystore.jks
53+
chmod 600 upload-keystore.jks
54+
55+
# Copy bundle to new file so original remains untouched
56+
cp "$AAB_SRC" "$AAB_DST"
57+
58+
# Sign the AAB
59+
jarsigner -verbose -keystore upload-keystore.jks -storepass "$KEYSTORE_PASSWORD" -keypass "$KEY_PASSWORD" "$AAB_DST" "$KEY_ALIAS"
60+
61+
# Verify signature
62+
jarsigner -verify -verbose -certs "$AAB_DST"
63+
64+
# Clean up keystore file
65+
rm -f upload-keystore.jks
66+
67+
echo "signed_aab=$AAB_DST" >> $GITHUB_OUTPUT
68+
69+
- name: Install curl
70+
run: sudo apt-get update && sudo apt-get install -y curl
71+
72+
- name: Upload signed AAB to Telegram
73+
env:
74+
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
75+
TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }}
76+
run: |
77+
set -e
78+
SIGNED_AAB="${{ steps.sign_aab.outputs.signed_aab }}"
79+
80+
if [ -z "$SIGNED_AAB" ] || [ ! -f "$SIGNED_AAB" ]; then
81+
echo "Signed AAB not found: $SIGNED_AAB"
82+
exit 1
83+
fi
84+
85+
echo "Uploading signed AAB: $SIGNED_AAB"
86+
curl -s -X POST "https://api.telegram.org/bot${{ env.TELEGRAM_BOT_TOKEN }}/sendDocument" \
87+
-F chat_id=${{ env.TELEGRAM_CHAT_ID }} \
88+
-F document=@"$SIGNED_AAB"

0 commit comments

Comments
 (0)