Fix APK build: use Gradle setup action, generate proper wrapper

The gradlew stub and missing gradle-wrapper.jar caused CI build to fail.
Now uses gradle/actions/setup-gradle@v4 to install Gradle, then generates
wrapper before building. Also renames signed APK and uploads both signed
and unsigned to GitHub Releases.
This commit is contained in:
ifedan-ed 2026-03-29 00:41:42 +00:00
parent 88b8a5d418
commit 7d453094a0

View file

@ -31,13 +31,19 @@ jobs:
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Generate Gradle wrapper
working-directory: android
run: |
gradle wrapper --gradle-version=8.5
- name: Build APK
working-directory: android
run: |
# Extract host from APP_URL for Gradle property
TWA_HOST=$(echo "${{ env.APP_URL }}" | sed 's|https://||;s|http://||;s|/.*||')
chmod +x gradlew 2>/dev/null || true
./gradlew assembleRelease -PTWA_HOST="${TWA_HOST}" || echo "::warning::Gradle build failed — ensure Android SDK and gradle wrapper are set up"
./gradlew assembleRelease -PTWA_HOST="${TWA_HOST}"
- name: Sign APK
if: success()
@ -49,13 +55,22 @@ jobs:
alias: ${{ secrets.ANDROID_KEY_ALIAS }}
keyStorePassword: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.ANDROID_KEY_PASSWORD }}
continue-on-error: true
- name: Rename signed APK
if: steps.sign.outcome == 'success'
run: |
SIGNED=$(find android/app/build/outputs/apk/release -name "*-signed.apk" | head -1)
if [ -n "$SIGNED" ]; then
cp "$SIGNED" android/app/build/outputs/apk/release/PedScribe-v${{ github.ref_name }}-signed.apk
fi
- name: Upload APK to Release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
files: android/app/build/outputs/apk/release/*.apk
files: |
android/app/build/outputs/apk/release/*-signed.apk
android/app/build/outputs/apk/release/app-release-unsigned.apk
generate_release_notes: true
- name: Upload artifact
@ -65,14 +80,12 @@ jobs:
name: pediatric-scribe-apk
path: android/app/build/outputs/apk/release/*.apk
retention-days: 30
if-no-files-found: warn
- name: Summary
run: |
echo "### TWA APK Build" >> $GITHUB_STEP_SUMMARY
echo "Built for: ${{ env.APP_URL }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Obtainium setup:**" >> $GITHUB_STEP_SUMMARY
echo "1. Add repo URL: \`https://github.com/ifedan-ed/pediatric-ai-scribe-v3\`" >> $GITHUB_STEP_SUMMARY
echo "2. Source: GitHub Releases" >> $GITHUB_STEP_SUMMARY
echo "3. APK auto-updates on new \`v*\` tags" >> $GITHUB_STEP_SUMMARY
echo "**Install options:**" >> $GITHUB_STEP_SUMMARY
echo "- Download from GitHub Releases" >> $GITHUB_STEP_SUMMARY
echo "- Obtainium: add repo \`https://github.com/ifedan-ed/pediatric-ai-scribe-v3\`" >> $GITHUB_STEP_SUMMARY