Files
f7cloud_mobile/docs/CI.md
T
b-dev-mobile f0708a30ac
CI / verify (push) Has been cancelled
CI / release (push) Has been cancelled
Этап 1: CI (Gitea Actions) + GPL corresponding source (п.4c)
- .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-админ для токена).
2026-07-07 22:32:38 +00:00

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.jks
  • F7_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-админ для токена). До активации: сборки — вручную на билд-машине, исходники — скриптом.