Skip to content

Commit edfe013

Browse files
author
Milkii Brewster
committed
ci: add GitHub Actions workflow for debug/release APK builds and tagged releases
1 parent 7e5a38f commit edfe013

1 file changed

Lines changed: 90 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
name: Build & Release
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
tags:
7+
- 'v*'
8+
pull_request:
9+
branches: [ master ]
10+
11+
jobs:
12+
build:
13+
name: Build APKs
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- name: Set up JDK 17
20+
uses: actions/setup-java@v4
21+
with:
22+
java-version: '17'
23+
distribution: 'temurin'
24+
cache: gradle
25+
26+
- name: Set up Android SDK
27+
uses: android-actions/setup-android@v3
28+
29+
- name: Grant execute permission for gradlew
30+
run: chmod +x gradlew
31+
32+
- name: Build debug APK
33+
run: ./gradlew assembleDebug
34+
35+
- name: Build release APK
36+
run: ./gradlew assembleRelease
37+
# Note: release APK will be unsigned without signing config.
38+
# Add KEYSTORE secrets and a signingConfigs block in build.gradle to sign.
39+
40+
- name: Upload debug APK
41+
uses: actions/upload-artifact@v4
42+
with:
43+
name: app-debug
44+
path: app/build/outputs/apk/debug/app-debug.apk
45+
retention-days: 14
46+
47+
- name: Upload release APK
48+
uses: actions/upload-artifact@v4
49+
with:
50+
name: app-release-unsigned
51+
path: app/build/outputs/apk/release/app-release-unsigned.apk
52+
retention-days: 14
53+
54+
release:
55+
name: Create GitHub Release
56+
needs: build
57+
runs-on: ubuntu-latest
58+
if: startsWith(github.ref, 'refs/tags/v')
59+
60+
steps:
61+
- uses: actions/checkout@v4
62+
63+
- name: Set up JDK 17
64+
uses: actions/setup-java@v4
65+
with:
66+
java-version: '17'
67+
distribution: 'temurin'
68+
cache: gradle
69+
70+
- name: Set up Android SDK
71+
uses: android-actions/setup-android@v3
72+
73+
- name: Grant execute permission for gradlew
74+
run: chmod +x gradlew
75+
76+
- name: Build debug APK
77+
run: ./gradlew assembleDebug
78+
79+
- name: Build release APK
80+
run: ./gradlew assembleRelease
81+
82+
- name: Create Release
83+
uses: softprops/action-gh-release@v2
84+
with:
85+
files: |
86+
app/build/outputs/apk/debug/app-debug.apk
87+
app/build/outputs/apk/release/app-release-unsigned.apk
88+
generate_release_notes: true
89+
env:
90+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)