Merge feature/v1.3.2-lint-cleanup into main #19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Android Production APK | |
| on: | |
| push: | |
| branches: [ main ] # Nur bei Push/Merge auf main triggern | |
| workflow_dispatch: # Ermöglicht manuellen Trigger | |
| permissions: | |
| contents: write # Fuer Release-Erstellung erforderlich | |
| jobs: | |
| build: | |
| name: Build Production APK | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Code auschecken | |
| uses: actions/checkout@v4 | |
| - name: Java einrichten | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Semantic Versionsnummer aus build.gradle.kts extrahieren | |
| run: | | |
| # Version aus build.gradle.kts fuer F-Droid Kompatibilität | |
| VERSION_NAME=$(grep "versionName = " android/app/build.gradle.kts | sed 's/.*versionName = "\(.*\)".*/\1/') | |
| VERSION_CODE=$(grep "versionCode = " android/app/build.gradle.kts | sed 's/.*versionCode = \([0-9]*\).*/\1/') | |
| # Semantische Versionierung (nicht datums-basiert) | |
| BUILD_NUMBER="$VERSION_CODE" | |
| echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV | |
| echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV | |
| echo "VERSION_TAG=v$VERSION_NAME" >> $GITHUB_ENV | |
| echo "🚀 Baue Version: $VERSION_NAME (Code: $BUILD_NUMBER)" | |
| - name: Version aus build.gradle.kts verifizieren | |
| run: | | |
| echo "✅ Verwende Version aus build.gradle.kts:" | |
| grep -E "versionCode|versionName" android/app/build.gradle.kts | |
| - name: Android Signing konfigurieren | |
| run: | | |
| echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > android/app/simple-notes-release.jks | |
| echo "storePassword=${{ secrets.KEYSTORE_PASSWORD }}" > android/key.properties | |
| echo "keyPassword=${{ secrets.KEY_PASSWORD }}" >> android/key.properties | |
| echo "keyAlias=${{ secrets.KEY_ALIAS }}" >> android/key.properties | |
| echo "storeFile=simple-notes-release.jks" >> android/key.properties | |
| echo "✅ Signing-Konfiguration erstellt" | |
| - name: Produktions-APK bauen (Standard + F-Droid Flavors) | |
| run: | | |
| cd android | |
| ./gradlew assembleStandardRelease assembleFdroidRelease --no-daemon --stacktrace | |
| - name: APK-Varianten mit Versionsnamen kopieren | |
| run: | | |
| mkdir -p apk-output | |
| # Standard Flavor - Universal APK | |
| cp android/app/build/outputs/apk/standard/release/app-standard-release.apk \ | |
| apk-output/simple-notes-sync-v${{ env.VERSION_NAME }}-standard.apk | |
| # F-Droid Flavor - Universal APK | |
| cp android/app/build/outputs/apk/fdroid/release/app-fdroid-release.apk \ | |
| apk-output/simple-notes-sync-v${{ env.VERSION_NAME }}-fdroid.apk | |
| echo "✅ APK-Dateien vorbereitet:" | |
| ls -lh apk-output/ | |
| - name: APK-Artefakte hochladen | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: simple-notes-sync-apks-v${{ env.VERSION_NAME }} | |
| path: apk-output/*.apk | |
| retention-days: 90 # Produktions-Builds länger aufbewahren | |
| - name: Commit-Informationen auslesen | |
| run: | | |
| echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV | |
| echo "COMMIT_DATE=$(git log -1 --format=%cd --date=iso-strict)" >> $GITHUB_ENV | |
| - name: F-Droid Changelogs lesen | |
| run: | | |
| # Lese deutsche Changelog (Hauptsprache) - Use printf to ensure proper formatting | |
| if [ -f "fastlane/metadata/android/de-DE/changelogs/${{ env.BUILD_NUMBER }}.txt" ]; then | |
| CHANGELOG_CONTENT=$(cat "fastlane/metadata/android/de-DE/changelogs/${{ env.BUILD_NUMBER }}.txt") | |
| echo "CHANGELOG_DE<<GHADELIMITER" >> $GITHUB_ENV | |
| echo "$CHANGELOG_CONTENT" >> $GITHUB_ENV | |
| echo "GHADELIMITER" >> $GITHUB_ENV | |
| else | |
| echo "CHANGELOG_DE=Keine deutschen Release Notes verfügbar." >> $GITHUB_ENV | |
| fi | |
| # Lese englische Changelog (optional) | |
| if [ -f "fastlane/metadata/android/en-US/changelogs/${{ env.BUILD_NUMBER }}.txt" ]; then | |
| CHANGELOG_CONTENT_EN=$(cat "fastlane/metadata/android/en-US/changelogs/${{ env.BUILD_NUMBER }}.txt") | |
| echo "CHANGELOG_EN<<GHADELIMITER" >> $GITHUB_ENV | |
| echo "$CHANGELOG_CONTENT_EN" >> $GITHUB_ENV | |
| echo "GHADELIMITER" >> $GITHUB_ENV | |
| else | |
| echo "CHANGELOG_EN=" >> $GITHUB_ENV | |
| fi | |
| - name: Create Production Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| tag_name: ${{ env.VERSION_TAG }} | |
| name: "📝 Simple Notes Sync v${{ env.VERSION_NAME }}" | |
| files: apk-output/*.apk | |
| draft: false | |
| prerelease: false | |
| generate_release_notes: false | |
| body: | | |
| ## 📦 Downloads | |
| | Variante | Datei | Info | | |
| |----------|-------|------| | |
| | **🏆 Empfohlen** | `simple-notes-sync-v${{ env.VERSION_NAME }}-standard.apk` | Standard-Version (funktioniert auf allen Geraeten) | | |
| | F-Droid | `simple-notes-sync-v${{ env.VERSION_NAME }}-fdroid.apk` | Fuer F-Droid Store | | |
| --- | |
| ## 📋 Changelog / Release Notes | |
| ${{ env.CHANGELOG_DE }} | |
| <details> | |
| <summary>🌍 English Version</summary> | |
| ${{ env.CHANGELOG_EN }} | |
| </details> | |
| --- | |
| ## 📊 Build-Info | |
| - **Version:** ${{ env.VERSION_NAME }} (Code: ${{ env.BUILD_NUMBER }}) | |
| - **Datum:** ${{ env.COMMIT_DATE }} | |
| - **Commit:** ${{ env.SHORT_SHA }} | |
| --- | |
| **[📖 Dokumentation](https://github.com/inventory69/simple-notes-sync/blob/main/QUICKSTART.md)** · **[🐛 Issue melden](https://github.com/inventory69/simple-notes-sync/issues)** | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |