2.0 KiB
2.0 KiB
fdroid-publish — публикация APK в F-Droid
Подписывает APK (v1+v2, keystore из переменных Gitea) и публикует в F-Droid репозиторий, затем пересобирает индекс (fdroid update).
Использование
В workflow проекта (по образцу build-docker / helm-publish):
- name: Build APK
uses: https://git.binom.pw/subochev/devops/build-gradle@main
with:
target: assembleRelease
- name: Publish to F-Droid
uses: https://git.binom.pw/subochev/devops/fdroid-publish@main
with:
apk_path: "app/build/outputs/apk/release/app-release-unsigned.apk"
Переменные (user-level, Gitea → Settings → Actions → Variables)
| Переменная | Назначение |
|---|---|
ANDROID_KEYSTORE_B64 |
keystore подписи приложений в base64 |
ANDROID_KEYSTORE_PASSWORD |
пароль keystore |
ANDROID_KEY_ALIAS |
алиас ключа (binom) |
ANDROID_KEY_PASSWORD |
пароль ключа |
FROID_HOST |
F-Droid LXC (192.168.76.165) |
FROID_SSH_USER |
root |
FROID_SSH_KEY |
приватный SSH-ключ CI (ed25519) |
Что происходит
- Setup Java 21
- Декодирует keystore, подписывает APK через uber-apk-signer (v1+v2)
scpподписанного APK в/opt/fdroid/repo/на F-Droid LXCssh "cd /opt/fdroid && fdroid update"— пересборка индекса
После этого F-Droid-клиенты на устройствах подтянут обновление автоматически.
Инфраструктура (см. скилл fdroid-repo)
- LXC 192.168.76.165: fdroidserver 2.4.2, репозиторий
/opt/fdroid/repo(единый источник; nginx монтирует его в контейнер) - URL репозитория:
https://fdroid.binom.pw/repo/ - keystore подписи приложений:
/opt/fdroid/android-release.keystore(alias binom)