Files
iTartanas/.gitea/workflows/ci-cd.yml
T
Pablo 469a5a8e5d
Build Android APK / Build APK (push) Successful in 7m6s
CI/CD Pipeline / Run Tests (push) Successful in 2m35s
CI/CD Pipeline / Build APK (push) Successful in 2m55s
Release APK / Create Release (push) Failing after 2m22s
modified build for gitea workflow
2026-03-09 23:07:39 +01:00

161 lines
5.5 KiB
YAML

name: CI/CD Pipeline
on:
push:
branches:
- '**'
pull_request:
branches:
- main
- master
jobs:
test:
name: Run Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '21'
cache: 'gradle'
- name: Setup Android SDK
uses: android-actions/setup-android@v2
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Run Unit Tests
run: ./gradlew test --stacktrace -Porg.gradle.java.installations.auto-download=false
env:
JAVA_HOME: ${{ env.JAVA_HOME }}
- name: Run Lint
run: ./gradlew lint --stacktrace -Porg.gradle.java.installations.auto-download=false
continue-on-error: true
env:
JAVA_HOME: ${{ env.JAVA_HOME }}
- name: Upload Test Reports
uses: actions/upload-artifact@v3
if: always()
with:
name: test-reports
path: app/build/reports/tests/
retention-days: 7
- name: Upload Lint Reports
uses: actions/upload-artifact@v3
if: always()
with:
name: lint-reports
path: app/build/reports/lint-results-*.html
retention-days: 7
build:
name: Build APK
needs: test
runs-on: ubuntu-latest
if: github.event_name == 'push'
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '21'
cache: 'gradle'
- name: Setup Android SDK
uses: android-actions/setup-android@v2
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Get version info
id: version
run: |
VERSION_NAME=$(grep "versionName" app/build.gradle.kts | cut -d '"' -f 2)
VERSION_CODE=$(grep "versionCode" app/build.gradle.kts | grep -o '[0-9]\+')
echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_OUTPUT
echo "VERSION_CODE=$VERSION_CODE" >> $GITHUB_OUTPUT
- name: Build Debug APK
run: ./gradlew assembleDebug --stacktrace -Porg.gradle.java.installations.auto-download=false
env:
JAVA_HOME: ${{ env.JAVA_HOME }}
- name: Build Release APK
run: ./gradlew assembleRelease --stacktrace -Porg.gradle.java.installations.auto-download=false
continue-on-error: true
env:
JAVA_HOME: ${{ env.JAVA_HOME }}
- name: Rename APKs
run: |
if [ -f app/build/outputs/apk/debug/app-debug.apk ]; then
mv app/build/outputs/apk/debug/app-debug.apk \
app/build/outputs/apk/debug/iTartanas-${{ steps.version.outputs.VERSION_NAME }}-debug.apk
fi
if [ -f app/build/outputs/apk/release/app-release-unsigned.apk ]; then
mv app/build/outputs/apk/release/app-release-unsigned.apk \
app/build/outputs/apk/release/iTartanas-${{ steps.version.outputs.VERSION_NAME }}-release-unsigned.apk
fi
- name: Upload Debug APK
uses: actions/upload-artifact@v3
with:
name: iTartanas-${{ steps.version.outputs.VERSION_NAME }}-debug
path: app/build/outputs/apk/debug/*.apk
retention-days: 30
- name: Upload Release APK
uses: actions/upload-artifact@v3
if: success()
with:
name: iTartanas-${{ steps.version.outputs.VERSION_NAME }}-release
path: app/build/outputs/apk/release/*.apk
retention-days: 30
- name: Build Summary
if: always()
run: |
echo "### 📱 iTartanas Build v${{ steps.version.outputs.VERSION_NAME }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Branch:** \`${{ github.ref_name }}\`" >> $GITHUB_STEP_SUMMARY
echo "**Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
echo "**Author:** ${{ github.actor }}" >> $GITHUB_STEP_SUMMARY
echo "**Version:** ${{ steps.version.outputs.VERSION_NAME }} (Build ${{ steps.version.outputs.VERSION_CODE }})" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "#### 📦 APK Files" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if [ -f app/build/outputs/apk/debug/iTartanas-*.apk ]; then
SIZE=$(du -h app/build/outputs/apk/debug/iTartanas-*.apk | cut -f1)
echo "| Type | Status | Size |" >> $GITHUB_STEP_SUMMARY
echo "|------|--------|------|" >> $GITHUB_STEP_SUMMARY
echo "| Debug | ✅ Success | $SIZE |" >> $GITHUB_STEP_SUMMARY
else
echo "| Debug | ❌ Failed | - |" >> $GITHUB_STEP_SUMMARY
fi
if [ -f app/build/outputs/apk/release/iTartanas-*.apk ]; then
SIZE=$(du -h app/build/outputs/apk/release/iTartanas-*.apk | cut -f1)
echo "| Release | ✅ Success | $SIZE |" >> $GITHUB_STEP_SUMMARY
else
echo "| Release | ⚠️ Unsigned | - |" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "#### 📊 Gradle Build Info" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
./gradlew --version >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY