Add Android build workflow and setup for APK generation
Some checks failed
Build Multi-Platform Binaries / build-frontend (push) Successful in 39s
Build Multi-Platform Binaries / build-android-apk (push) Failing after 3m40s
Build Multi-Platform Binaries / build-binaries (amd64, linux, client, true) (push) Successful in 1m27s
Build Multi-Platform Binaries / build-binaries (amd64, darwin, server, false) (push) Successful in 4m38s
Build Multi-Platform Binaries / build-binaries (amd64, windows, client, true) (push) Successful in 1m21s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, client, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, server, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm64, darwin, server, false) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm64, linux, client, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm64, linux, server, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (arm64, windows, server, false) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (amd64, linux, server, true) (push) Has been cancelled
Build Multi-Platform Binaries / build-binaries (amd64, windows, server, true) (push) Has been cancelled

This commit is contained in:
2026-03-22 21:30:12 +08:00
parent 4210ab7675
commit f644d3764a
2 changed files with 60 additions and 2 deletions

View File

@@ -64,6 +64,20 @@ jobs:
cache: 'npm'
cache-dependency-path: web/package-lock.json
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
gradle-version: '8.7'
- name: Build frontend
run: |
cd web
@@ -75,6 +89,17 @@ jobs:
echo "Frontend build completed"
ls -la internal/server/app/dist/
- name: Build Android release APK
run: |
cd android
gradle --no-daemon assembleRelease
cd ..
mkdir -p dist
cp android/app/build/outputs/apk/release/app-release-unsigned.apk \
"dist/gotunnel-android-${{ inputs.version }}-release-unsigned.apk"
echo "Android APK build completed"
ls -lah dist/gotunnel-android-${{ inputs.version }}-release-unsigned.apk
- name: Build all platforms
run: |
mkdir -p dist
@@ -182,6 +207,7 @@ jobs:
echo "- **Linux (amd64/arm64)**: \`.tar.gz\` files" >> release_notes.md
echo "- **macOS (amd64/arm64)**: \`.tar.gz\` files" >> release_notes.md
echo "- **Windows (amd64)**: \`.zip\` files" >> release_notes.md
echo "- **Android**: unsigned \`.apk\` file" >> release_notes.md
echo "" >> release_notes.md
echo "Verify downloads with \`SHA256SUMS\`" >> release_notes.md
fi
@@ -197,6 +223,7 @@ jobs:
files: |-
dist/*.tar.gz
dist/*.zip
dist/*.apk
dist/SHA256SUMS
draft: ${{ inputs.draft }}
prerelease: ${{ inputs.prerelease }}

View File

@@ -40,6 +40,37 @@ jobs:
path: web/dist
retention-days: 1
build-android-apk:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
gradle-version: '8.7'
- name: Build Android debug APK
working-directory: android
run: gradle --no-daemon assembleDebug
- name: Upload Android APK
uses: actions/upload-artifact@v3
with:
name: gotunnel-android-debug-apk
path: android/app/build/outputs/apk/debug/app-debug.apk
retention-days: 7
build-binaries:
needs: build-frontend
runs-on: golang