Update build.yml

This commit is contained in:
OTKUSteyler 2025-11-26 18:47:57 +01:00 • committed by GitHub
parent 2ffe2f510d
commit 9f8c521659
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,79 +1,67 @@
name: Build APK name: Build APK
on: on: [push]
push:
branches: ["**"]
pull_request:
permissions:
contents: read
env:
JAVA_VERSION: 17
jobs: jobs:
build: build:
name: Build and push
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - uses: actions/checkout@v4
uses: actions/checkout@v4 with:
fetch-depth: 0
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v4 uses: actions/setup-java@v4
with: with:
distribution: temurin distribution: "temurin"
java-version: ${{ env.JAVA_VERSION }} java-version: "17"
cache: gradle
- name: Setup Android SDK
uses: android-actions/setup-android@v2
- name: Make Gradle executable - name: Make Gradle executable
run: chmod +x ./gradlew run: chmod +x ./gradlew
- name: Optional Keystore (if provided) - name: Build APKs
env:
KEYSTORE: ${{ secrets.KEYSTORE }}
run: | run: |
if [ -n "$KEYSTORE" ]; then # Retry the Gradle build up to 3 times to mitigate transient cache/service errors
echo "$KEYSTORE" | base64 -d > signing-key.jks ATTEMPT=0
ls -l signing-key.jks until [ $ATTEMPT -ge 3 ]
else do
echo "No keystore provided, skipping..." ./gradlew build --no-daemon --stacktrace && break
ATTEMPT=$((ATTEMPT+1))
echo "Gradle build failed, retrying ($ATTEMPT/3)..."
sleep 5
done
if [ $ATTEMPT -ge 3 ]; then
echo "Gradle build failed after 3 attempts"
exit 1
fi fi
- name: Assemble Debug and Release - name: Setup directories
env: run:
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} mkdir -p /tmp/ShiggyXposedbuild/apks
KEY_ALIAS: ${{ secrets.KEY_ALIAS }} mkdir -p /tmp/ShiggyXposedbuild/tools
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
GRADLE_OPTS: -Dorg.gradle.daemon=false
run: |
if [ -f signing-key.jks ]; then
./gradlew assembleDebug assembleRelease \
-Pandroid.injected.signing.store.file=$GITHUB_WORKSPACE/signing-key.jks \
-Pandroid.injected.signing.store.password="$KEYSTORE_PASSWORD" \
-Pandroid.injected.signing.key.alias="$KEY_ALIAS" \
-Pandroid.injected.signing.key.password="$KEY_PASSWORD"
else
./gradlew assembleDebug assembleRelease
fi
- name: Collect APKs - name: Move debug APK
run: | run: mv ./app/build/outputs/apk/debug/app-debug.apk /tmp/ShiggyXposedbuild/apks
mkdir -p dist
cp app/build/outputs/apk/debug/*.apk dist/ || true - name: Download uber-apk-signer
# Prefer signed release if produced run: wget -nv "https://github.com/patrickfav/uber-apk-signer/releases/download/v1.2.1/uber-apk-signer-1.2.1.jar" -O /tmp/ShiggyXposedbuild/tools/uber-apk-signer.jar
if ls app/build/outputs/apk/release/*-signed.apk >/dev/null 2>&1; then
cp app/build/outputs/apk/release/*-signed.apk dist/ - name: Sign release APK
else run: java -jar /tmp/ShiggyXposedbuild/tools/uber-apk-signer.jar --apks ./app/build/outputs/apk/release/app-release-unsigned.apk --out /tmp/ShiggyXposedbuild/apks/
cp app/build/outputs/apk/release/*.apk dist/
fi - name: Rename release APK
ls -1 dist run: mv /tmp/ShiggyXposedbuild/apks/app-release-aligned-debugSigned.apk /tmp/ShiggyXposedbuild/apks/app-release.apk
- name: Upload debug APK
uses: actions/upload-artifact@v4
with:
name: app-debug
path: /tmp/ShiggyXposedbuild/apks/app-debug.apk
- name: Upload All APKs - name: Upload All APKs
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: apks name: app-release
path: dist/*.apk path: /tmp/ShiggyXposedbuild/apks/app-release.apk
if-no-files-found: error