diff --git a/docs/CI.md b/docs/CI.md index 17323dd..5f80429 100644 --- a/docs/CI.md +++ b/docs/CI.md @@ -17,13 +17,20 @@ 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-админа**): +Регистрация — **repo-токен** из Gitea → репозиторий `root/f7cloud_mobile` → Settings → Actions → +Runners → Create new Runner (НЕ site-admin токен — тот регистрирует раннер общеинстансно и он +подхватывает джобы чужих ячеек; проверено — брал `glb_adm/f7_talk`). Метки `self-hosted`+`f7-android` +соответствуют `runs-on: [self-hosted, f7-android]`. + +**Развёрнуто на инфре B (2026-07-09):** `act_runner` v0.2.11 + Node 20 (`/opt/nodejs`) + Docker +(`docker.io`, нужен act_runner для старта, но джобы идут на **хосте** — метки `:host`, тёплый кэш +`/root/.gradle`). Конфиг `/opt/act_runner/config.yaml` (labels `self-hosted:host`,`f7-android:host`, +`container.docker_host: "-"`). systemd-сервис `act_runner.service` (enabled, Restart=always, +env JAVA_HOME/ANDROID_HOME/PATH+node). Регистрация — repo-scope (только f7cloud_mobile). ```bash -# на машине раннера (инфра B): -act_runner register --instance https://git.f7cloud.ru --token --labels f7-android -act_runner daemon +systemctl status act_runner # состояние +journalctl -u act_runner -f # логи ``` -Метка `f7-android` соответствует `runs-on: [self-hosted, f7-android]` в workflow. ## Secrets репозитория (Gitea → Settings → Actions → Secrets) @@ -43,5 +50,7 @@ scripts/package-source.sh dist/ # → dist/f7cloud-mobile-v--sourc ## Статус -Workflow и скрипт готовы и в репо. **Не активны, пока не зарегистрирован раннер** (инфра-шаг ячейки B, -нужен Gitea-админ для токена). До активации: сборки — вручную на билд-машине, исходники — скриптом. +**Активно (2026-07-09):** self-hosted раннер `f7-b-android` зарегистрирован и запущен на инфре B +(scope — репозиторий, host-исполнение). Workflow срабатывает на push/PR (lint+тесты+assembleDebug). +Осталось для джобы `release` по тегу: завести Secrets репозитория (keystore base64 + пароли) — +пока release-сборки делаются вручную на билд-машине тем же ключом.