.github/workflows/tag-check.yml (1433 bytes)
1 name: tag-check 2 3 # F-Droid builds each new v* tag by itself. This workflow checks the tag first. 4 on: 5 push: 6 tags: ["v*"] 7 8 jobs: 9 check: 10 runs-on: ubuntu-latest 11 steps: 12 - uses: actions/checkout@v4 13 14 - name: Tag matches gradle.properties 15 run: | 16 name=$(sed -n 's/^assistkey.versionName=//p' gradle.properties) 17 code=$(sed -n 's/^assistkey.versionCode=//p' gradle.properties) 18 test "v$name" = "$GITHUB_REF_NAME" || { echo "Tag $GITHUB_REF_NAME does not match versionName $name"; exit 1; } 19 test -f "fastlane/metadata/android/en-US/changelogs/$code.txt" || { echo "Missing changelogs/$code.txt"; exit 1; } 20 grep -q "^## $name " CHANGELOG.md || { echo "CHANGELOG.md has no entry for $name"; exit 1; } 21 22 - uses: actions/setup-java@v4 23 with: 24 distribution: temurin 25 java-version: "21" 26 27 - name: Unit tests and F-Droid build 28 run: ./gradlew testFullDebugUnitTest assembleFdroidRelease 29 30 - name: F-Droid build has no bundled app and no billing library 31 run: | 32 apk=$(ls app/build/outputs/apk/fdroid/release/*.apk) 33 if unzip -l "$apk" | grep -q "assets/bundled"; then echo "Bundled app in APK"; exit 1; fi 34 for dex in $(unzip -Z1 "$apk" | grep '\.dex$'); do 35 if unzip -p "$apk" "$dex" | grep -aq "billingclient"; then echo "Billing library in APK"; exit 1; fi 36 done