Files
itstransport-android/.gitea/workflows/build-release.yml
admin bd3961983a
Some checks failed
Build & Deploy APK / build (push) Failing after 6s
fix: strip CRLF from gradlew and debug task list
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 21:21:45 +01:00

58 lines
2.0 KiB
YAML

name: Build & Deploy APK
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
run: |
git clone --depth 1 --branch "${GITHUB_REF_NAME}" \
"http://admin:${{ secrets.GITHUB_TOKEN }}@192.168.5.10:3000/${GITHUB_REPOSITORY}.git" .
- name: Validate environment
run: |
echo "Java: $(java --version 2>&1 | head -1)"
echo "ANDROID_HOME: $ANDROID_HOME"
test -n "$ANDROID_HOME" || { echo "ERROR: ANDROID_HOME not set"; exit 1; }
ls "$ANDROID_HOME/platforms" > /dev/null 2>&1 || echo "WARNING: Cannot list ANDROID_HOME (permissions?), build may still work via gradle"
- name: Build Release APK
run: |
chmod +x ./gradlew
sed -i 's/\r$//' ./gradlew
echo "=== Testing gradle ==="
./gradlew tasks --no-daemon 2>&1 | head -20
echo "=== Building APK ==="
./gradlew assembleRelease --no-daemon
- name: Deploy APK & update version
run: |
STORAGE="/home/user/itstransport/backend/storage/app/android"
VERSION_NAME=$(grep 'versionName' app/build.gradle.kts | head -1 | sed 's/.*"\(.*\)".*/\1/')
VERSION_CODE=$(grep 'versionCode' app/build.gradle.kts | head -1 | sed 's/[^0-9]*//g')
APK=$(find app/build/outputs/apk/release -name "*.apk" | head -1)
test -n "$APK" || { echo "ERROR: No APK found"; exit 1; }
cp "$APK" "$STORAGE/app-release.apk"
COMMIT_MSG=$(git log -1 --pretty=%s | sed 's/"/\\"/g')
python3 -c "
import json
data = {
'versionName': '$VERSION_NAME',
'versionCode': int('$VERSION_CODE'),
'releaseNotes': \"$COMMIT_MSG\"
}
with open('$STORAGE/version.json', 'w') as f:
json.dump(data, f, indent=4, ensure_ascii=False)
f.write('\n')
"
echo "Deployed v${VERSION_NAME} (code ${VERSION_CODE}) — $(du -h "$STORAGE/app-release.apk" | cut -f1)"