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

48 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CI — Gitea Actions
Пайплайн: [`.gitea/workflows/ci.yml`](../.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-админа**):
```bash
# на машине раннера (инфра 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](RELEASE-SIGNING.md)
## GPL corresponding source
`scripts/package-source.sh` собирает архив всего исходника (вкл. vendor/talk-android GPL, LICENSE,
NOTICE) — обязательство GPLv3 §6. Работает и вручную:
```bash
scripts/package-source.sh dist/ # → dist/f7cloud-mobile-v<ver>-<rev>-source.tar.gz
```
В CI прикладывается к каждому Gitea Release. До появления раннера — публиковать исходник
вручную этим скриптом к каждой распространяемой сборке.
## Статус
Workflow и скрипт готовы и в репо. **Не активны, пока не зарегистрирован раннер** (инфра-шаг ячейки B,
нужен Gitea-админ для токена). До активации: сборки — вручную на билд-машине, исходники — скриптом.