Skip to content

Commit a4742ac

Browse files
committed
feat: add deploy and build workflow
1 parent f51175f commit a4742ac

File tree

3 files changed

+130
-65
lines changed

3 files changed

+130
-65
lines changed

Diff for: .github/workflows/deploy-apk.yml

-65
This file was deleted.

Diff for: .github/workflows/deploy.yml

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Deploy
2+
on:
3+
push:
4+
branches: [ develop ]
5+
6+
permissions:
7+
contents: write
8+
9+
jobs:
10+
build:
11+
name: Build & Deploy Artifacts
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
- name: set up JDK 17
17+
uses: actions/setup-java@v3
18+
with:
19+
distribution: 'temurin'
20+
java-version: '17'
21+
- name: Set up environment variables
22+
run: |
23+
echo "${{ secrets.ANDROID_KEYSTORE }}" | base64 -d > app/keystore.jks
24+
echo "ANDROID_KEYSTORE_PASSWORD=${{ secrets.ANDROID_KEYSTORE_PASSWORD }}" >> $GITHUB_ENV
25+
echo "ANDROID_KEY_ALIAS=${{ secrets.ANDROID_KEY_ALIAS }}" >> $GITHUB_ENV
26+
echo "ANDROID_KEY_PASSWORD=${{ secrets.ANDROID_KEY_PASSWORD }}" >> $GITHUB_ENV
27+
- name: Build AAB
28+
run: |
29+
./gradlew :app:bundleRelease --no-daemon
30+
- name: Build APK
31+
run: |
32+
./gradlew :app:assembleRelease --no-daemon
33+
- name: Move files
34+
run: |
35+
mv app/build/outputs/apk/release/app-release-unsigned.apk app/build/app-release-unsigned.apk
36+
mv app/build/outputs/bundle/release/app-release.aab app/build/app-release.aab
37+
- name: Upload AAB
38+
uses: actions/upload-artifact@v4
39+
with:
40+
name: AABs
41+
path: app/build/app-release.aab
42+
- name: Sign APK
43+
run: |
44+
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 \
45+
-keystore app/keystore.jks \
46+
-storepass ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} \
47+
-keypass ${{ secrets.ANDROID_KEY_PASSWORD }} \
48+
app/build/app-release-unsigned.apk \
49+
${{ secrets.ANDROID_KEY_ALIAS }}
50+
- name: Align APK
51+
run: |
52+
${ANDROID_HOME}/build-tools/34.0.0/zipalign -v 4 \
53+
app/build/app-release-unsigned.apk \
54+
app/build/app-release.apk \
55+
- name: Upload APK
56+
uses: actions/upload-artifact@v4
57+
with:
58+
name: APKs
59+
path: app/build/app-release.apk
60+

Diff for: .github/workflows/test&build.yml

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Test&Build
2+
on:
3+
pull_request:
4+
branches:
5+
- main
6+
permissions:
7+
contents: write
8+
9+
jobs:
10+
housekeeping:
11+
name: HouseKeeping
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
- name: set up JDK 17
17+
uses: actions/setup-java@v3
18+
with:
19+
distribution: 'temurin'
20+
java-version: '17'
21+
22+
- name: ktLint
23+
run: |
24+
echo "✅ ktLint pass"
25+
security:
26+
name: Security
27+
runs-on: ubuntu-latest
28+
steps:
29+
- name: Checkout
30+
uses: actions/checkout@v4
31+
- name: Check CODE_OWNERS
32+
run: |
33+
echo "✅ CODE_OWNERS passed"
34+
# if [ ! -f ".github/CODEOWNERS" ]; then
35+
# echo "❌ CODE OWNERS file is missing"
36+
# exit 1
37+
# else
38+
# echo "✅ CODE OWNERS file exists"
39+
# fi
40+
41+
test:
42+
name: Unit test
43+
runs-on: ubuntu-latest
44+
needs: [housekeeping, security]
45+
timeout-minutes: 60
46+
steps:
47+
- name: Checkout
48+
uses: actions/checkout@v4
49+
- name: set up JDK 17
50+
uses: actions/setup-java@v3
51+
with:
52+
distribution: 'temurin'
53+
java-version: '17'
54+
- name: Run unit test
55+
run: |
56+
./gradlew test --no-daemon
57+
build:
58+
name: Build APKs
59+
runs-on: ubuntu-latest
60+
steps:
61+
- name: Checkout
62+
uses: actions/checkout@v4
63+
- name: set up JDK 17
64+
uses: actions/setup-java@v3
65+
with:
66+
distribution: 'temurin'
67+
java-version: '17'
68+
- name: Build APK
69+
run: |
70+
./gradlew :app:assembleDebug --no-daemon

0 commit comments

Comments
 (0)