- .gitea/workflows/ci.yml: push/PR → testDebugUnitTest+lintRelease+assembleDebug; тег v* → подписанный assembleRelease + архив исходников в Gitea Release. Gitea 1.26.1 поддерживает Actions. Self-hosted раннер (метка f7-android), т.к. проект тяжёлый (WebRTC) и нужен тёплый Gradle-кэш. - scripts/package-source.sh: GPL corresponding source (§6) — архив всего дерева вкл. vendor talk-android (GPL), LICENSE, NOTICE. Проверен: 6.7 МБ, 2353 файла. Закрывает п.4c, работает и вручную до появления раннера. - docs/CI.md: пайплайн, регистрация раннера, secrets. НЕ активно до регистрации раннера на инфре B (нужен Gitea-админ для токена).
2.7 KiB
CI — Gitea Actions
Пайплайн: .gitea/workflows/ci.yml. Gitea на git.f7cloud.ru — 1.26.1
(Actions поддерживаются).
Что делает
| Триггер | Джоба | Действия |
|---|---|---|
push в main, любой PR |
verify |
testDebugUnitTest + :app:lintRelease + :app:assembleDebug (+ артефакт debug-APK) |
тег v* |
release |
подписанный assembleRelease + архив исходников (GPL §6) → Gitea Release |
Предпосылка: self-hosted раннер (инфра ячейки B)
Проект тяжёлый (vendor talk-android + WebRTC), поэтому раннер — self-hosted с тёплым
Gradle-кэшем, а не контейнер (иначе WebRTC качается каждый прогон). Требования к машине раннера —
как у билд-машины: JDK 21 (/usr/lib/jvm/java-21-openjdk-amd64) + Android SDK 36
(/opt/android-sdk, platform android-36, build-tools 36.0.0).
Регистрация (нужен registration-токен из Gitea → Settings → Actions → Runners, права Gitea-админа):
# на машине раннера (инфра B):
act_runner register --instance https://git.f7cloud.ru --token <TOKEN> --labels f7-android
act_runner daemon
Метка f7-android соответствует runs-on: [self-hosted, f7-android] в workflow.
Secrets репозитория (Gitea → Settings → Actions → Secrets)
Для джобы release:
F7_KEYSTORE_BASE64— боевой keystore,base64 -w0 release.jksF7_KEYSTORE_PASSWORD,F7_KEY_ALIAS,F7_KEY_PASSWORD— см. RELEASE-SIGNING.md
GPL corresponding source
scripts/package-source.sh собирает архив всего исходника (вкл. vendor/talk-android GPL, LICENSE,
NOTICE) — обязательство GPLv3 §6. Работает и вручную:
scripts/package-source.sh dist/ # → dist/f7cloud-mobile-v<ver>-<rev>-source.tar.gz
В CI прикладывается к каждому Gitea Release. До появления раннера — публиковать исходник вручную этим скриптом к каждой распространяемой сборке.
Статус
Workflow и скрипт готовы и в репо. Не активны, пока не зарегистрирован раннер (инфра-шаг ячейки B, нужен Gitea-админ для токена). До активации: сборки — вручную на билд-машине, исходники — скриптом.