ci(release): produce F-Droid reference APKs via fdroid build in buildserver image, then sign
This commit is contained in:
parent
654ed1fe68
commit
b906161d70
2 changed files with 194 additions and 133 deletions
|
|
@ -15,87 +15,119 @@ AutoName: Tane
|
|||
RepoType: git
|
||||
Repo: https://git.comunes.org/comunes/tane.git
|
||||
|
||||
# Reproducible, developer-signed builds: F-Droid rebuilds from source and, if the
|
||||
# output matches our own signed APK on git.comunes.org byte-for-byte, publishes
|
||||
# OUR APK. Same signature as the Google Play build, so users move between stores
|
||||
# without reinstalling. The fingerprint below is the SHA-256 of the tane-upload
|
||||
# signing certificate (public value); the keystore/passwords never leave CI.
|
||||
# Reproducible, developer-signed: F-Droid rebuilds each split and, if it matches
|
||||
# our own signed APK on the git.comunes.org release byte-for-byte, publishes OUR
|
||||
# APK (same signature as the Play build). Value is the SHA-256 of the tane-upload
|
||||
# signing certificate (public).
|
||||
AllowedAPKSigningKeys: ddfae432091b8248a8a4a1b353487fa626301f4357ef835e94ec312f69418e38
|
||||
|
||||
# One build entry per ABI: `flutter build --split-per-abi` yields smaller APKs and
|
||||
# each split carries a distinct versionCode (gradle: versionCode*10 + {arm-v7a:1,
|
||||
# arm64:2, x86_64:3}), so v0.1.2 (+4) -> 41/42/43. The `binary:` is the reference
|
||||
# APK F-Droid verifies against, uploaded to the Forgejo release by
|
||||
# .forgejo/workflows/release.yml on the `v*` tag.
|
||||
Builds:
|
||||
- versionName: 0.1.3
|
||||
versionCode: 51
|
||||
commit: v0.1.3
|
||||
- versionName: 0.1.6
|
||||
versionCode: 81
|
||||
commit: 654ed1fe688d942f8bb9ec5505582532014d98a5
|
||||
subdir: apps/app_seeds
|
||||
sudo:
|
||||
- apt-get update
|
||||
- apt-get install -y git unzip xz-utils
|
||||
- git clone --depth 1 -b 3.41.9 https://github.com/flutter/flutter.git /opt/flutter
|
||||
- chown -R vagrant:vagrant /opt/flutter
|
||||
output: build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk
|
||||
binary: https://git.comunes.org/comunes/tane/releases/download/v%v/app-armeabi-v7a-release.apk
|
||||
srclibs:
|
||||
- flutter@stable
|
||||
- tesseract4android@4.9.0
|
||||
prebuild:
|
||||
- export PATH="/opt/flutter/bin:$PATH"
|
||||
- git config --global --add safe.directory /opt/flutter
|
||||
- flutter config --no-analytics
|
||||
- flutter pub get
|
||||
- dart run slang
|
||||
- dart run build_runner build --delete-conflicting-outputs
|
||||
- export flutterVersion=$(sed -n -E 's,.*cirruslabs/flutter:([0-9.]+).*,\1,p'
|
||||
../../.forgejo/workflows/release.yml | head -1)
|
||||
- '[[ $flutterVersion ]]'
|
||||
- git -C $$flutter$$ checkout -f $flutterVersion
|
||||
- cd ../..
|
||||
- export PUB_CACHE=$(pwd)/.pub-cache
|
||||
- $$flutter$$/bin/flutter config --no-analytics
|
||||
- $$flutter$$/bin/flutter pub get --enforce-lockfile
|
||||
- cd apps/app_seeds
|
||||
- $$flutter$$/bin/dart run slang
|
||||
- $$flutter$$/bin/dart run build_runner build --delete-conflicting-outputs
|
||||
scandelete:
|
||||
- .pub-cache
|
||||
build:
|
||||
- export PATH="/opt/flutter/bin:$PATH"
|
||||
- flutter build apk --release --split-per-abi --target-platform=android-arm
|
||||
- export PUB_CACHE=$(cd ../.. && pwd)/.pub-cache
|
||||
- pushd $$tesseract4android$$/tesseract4android
|
||||
- gradle assembleStandardRelease
|
||||
- popd
|
||||
- cp
|
||||
$$tesseract4android$$/tesseract4android/build/outputs/aar/tesseract4android-standard-release.aar
|
||||
$PUB_CACHE/hosted/pub.dev/flutter_tesseract_ocr-0.4.31/android/libs/tesseract4android-release.aar
|
||||
- $$flutter$$/bin/flutter build apk --release --split-per-abi --target-platform=android-arm
|
||||
|
||||
- versionName: 0.1.3
|
||||
versionCode: 52
|
||||
commit: v0.1.3
|
||||
- versionName: 0.1.6
|
||||
versionCode: 82
|
||||
commit: 654ed1fe688d942f8bb9ec5505582532014d98a5
|
||||
subdir: apps/app_seeds
|
||||
sudo:
|
||||
- apt-get update
|
||||
- apt-get install -y git unzip xz-utils
|
||||
- git clone --depth 1 -b 3.41.9 https://github.com/flutter/flutter.git /opt/flutter
|
||||
- chown -R vagrant:vagrant /opt/flutter
|
||||
output: build/app/outputs/flutter-apk/app-arm64-v8a-release.apk
|
||||
binary: https://git.comunes.org/comunes/tane/releases/download/v%v/app-arm64-v8a-release.apk
|
||||
srclibs:
|
||||
- flutter@stable
|
||||
- tesseract4android@4.9.0
|
||||
prebuild:
|
||||
- export PATH="/opt/flutter/bin:$PATH"
|
||||
- git config --global --add safe.directory /opt/flutter
|
||||
- flutter config --no-analytics
|
||||
- flutter pub get
|
||||
- dart run slang
|
||||
- dart run build_runner build --delete-conflicting-outputs
|
||||
- export flutterVersion=$(sed -n -E 's,.*cirruslabs/flutter:([0-9.]+).*,\1,p'
|
||||
../../.forgejo/workflows/release.yml | head -1)
|
||||
- '[[ $flutterVersion ]]'
|
||||
- git -C $$flutter$$ checkout -f $flutterVersion
|
||||
- cd ../..
|
||||
- export PUB_CACHE=$(pwd)/.pub-cache
|
||||
- $$flutter$$/bin/flutter config --no-analytics
|
||||
- $$flutter$$/bin/flutter pub get --enforce-lockfile
|
||||
- cd apps/app_seeds
|
||||
- $$flutter$$/bin/dart run slang
|
||||
- $$flutter$$/bin/dart run build_runner build --delete-conflicting-outputs
|
||||
scandelete:
|
||||
- .pub-cache
|
||||
build:
|
||||
- export PATH="/opt/flutter/bin:$PATH"
|
||||
- flutter build apk --release --split-per-abi --target-platform=android-arm64
|
||||
- export PUB_CACHE=$(cd ../.. && pwd)/.pub-cache
|
||||
- pushd $$tesseract4android$$/tesseract4android
|
||||
- gradle assembleStandardRelease
|
||||
- popd
|
||||
- cp
|
||||
$$tesseract4android$$/tesseract4android/build/outputs/aar/tesseract4android-standard-release.aar
|
||||
$PUB_CACHE/hosted/pub.dev/flutter_tesseract_ocr-0.4.31/android/libs/tesseract4android-release.aar
|
||||
- $$flutter$$/bin/flutter build apk --release --split-per-abi --target-platform=android-arm64
|
||||
|
||||
- versionName: 0.1.3
|
||||
versionCode: 53
|
||||
commit: v0.1.3
|
||||
- versionName: 0.1.6
|
||||
versionCode: 83
|
||||
commit: 654ed1fe688d942f8bb9ec5505582532014d98a5
|
||||
subdir: apps/app_seeds
|
||||
sudo:
|
||||
- apt-get update
|
||||
- apt-get install -y git unzip xz-utils
|
||||
- git clone --depth 1 -b 3.41.9 https://github.com/flutter/flutter.git /opt/flutter
|
||||
- chown -R vagrant:vagrant /opt/flutter
|
||||
output: build/app/outputs/flutter-apk/app-x86_64-release.apk
|
||||
binary: https://git.comunes.org/comunes/tane/releases/download/v%v/app-x86_64-release.apk
|
||||
srclibs:
|
||||
- flutter@stable
|
||||
- tesseract4android@4.9.0
|
||||
prebuild:
|
||||
- export PATH="/opt/flutter/bin:$PATH"
|
||||
- git config --global --add safe.directory /opt/flutter
|
||||
- flutter config --no-analytics
|
||||
- flutter pub get
|
||||
- dart run slang
|
||||
- dart run build_runner build --delete-conflicting-outputs
|
||||
- export flutterVersion=$(sed -n -E 's,.*cirruslabs/flutter:([0-9.]+).*,\1,p'
|
||||
../../.forgejo/workflows/release.yml | head -1)
|
||||
- '[[ $flutterVersion ]]'
|
||||
- git -C $$flutter$$ checkout -f $flutterVersion
|
||||
- cd ../..
|
||||
- export PUB_CACHE=$(pwd)/.pub-cache
|
||||
- $$flutter$$/bin/flutter config --no-analytics
|
||||
- $$flutter$$/bin/flutter pub get --enforce-lockfile
|
||||
- cd apps/app_seeds
|
||||
- $$flutter$$/bin/dart run slang
|
||||
- $$flutter$$/bin/dart run build_runner build --delete-conflicting-outputs
|
||||
scandelete:
|
||||
- .pub-cache
|
||||
build:
|
||||
- export PATH="/opt/flutter/bin:$PATH"
|
||||
- flutter build apk --release --split-per-abi --target-platform=android-x64
|
||||
- export PUB_CACHE=$(cd ../.. && pwd)/.pub-cache
|
||||
- pushd $$tesseract4android$$/tesseract4android
|
||||
- gradle assembleStandardRelease
|
||||
- popd
|
||||
- cp
|
||||
$$tesseract4android$$/tesseract4android/build/outputs/aar/tesseract4android-standard-release.aar
|
||||
$PUB_CACHE/hosted/pub.dev/flutter_tesseract_ocr-0.4.31/android/libs/tesseract4android-release.aar
|
||||
- $$flutter$$/bin/flutter build apk --release --split-per-abi --target-platform=android-x64
|
||||
|
||||
AutoUpdateMode: Version
|
||||
UpdateCheckMode: Tags v[\d.]+
|
||||
UpdateCheckData: apps/app_seeds/pubspec.yaml|version:\s*[\d.]+\+(\d+)|apps/app_seeds/pubspec.yaml|version:\s*([\d.]+)\+
|
||||
CurrentVersion: 0.1.3
|
||||
CurrentVersionCode: 53
|
||||
VercodeOperation:
|
||||
- '%c * 10 + 1'
|
||||
- '%c * 10 + 2'
|
||||
- '%c * 10 + 3'
|
||||
UpdateCheckData:
|
||||
apps/app_seeds/pubspec.yaml|version:\s*[\d.]+\+(\d+)|apps/app_seeds/pubspec.yaml|version:\s*([\d.]+)\+
|
||||
CurrentVersion: 0.1.6
|
||||
CurrentVersionCode: 83
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue