Denozordec 1e77e1a2b8
CI / changes (push) Successful in 7s
CI / openapi (push) Has been skipped
CI / go (push) Successful in 38s
CI / docker-web (deploy/docker/evobgp-web/Dockerfile, , evobgp-web) (push) Successful in 1m4s
CI / docker-web (deploy/docker/evobgp-web/Dockerfile, evobgp-all, evobgp-web-all) (push) Successful in 1m3s
CI / docker-bird (push) Has been skipped
CI / bird2 (push) Successful in 16s
CI / docker-go-prime (push) Successful in 23s
CI / docker-go (deploy/docker/evobgp-agent/Dockerfile, , evobgp-agent) (push) Successful in 1m1s
CI / docker-go (evobgp-all, 1, deploy/docker/gobinary/Dockerfile, , evobgp-all) (push) Successful in 2m7s
CI / docker-go (evobgp-api, 1, deploy/docker/gobinary/Dockerfile, , evobgp-api) (push) Successful in 1m21s
CI / docker-go (evobgp-deploy, 0, deploy/docker/gobinary/Dockerfile, , evobgp-deploy) (push) Successful in 1m18s
CI / docker-go (evobgp-ingest, 0, deploy/docker/gobinary/Dockerfile, , evobgp-ingest) (push) Successful in 1m22s
CI / docker-go (evobgp-node, 0, deploy/docker/gobinary/Dockerfile, , evobgp-node) (push) Successful in 1m5s
CI / docker-go (evobgp-render, 0, deploy/docker/gobinary/Dockerfile, , evobgp-render) (push) Successful in 1m28s
CI / docker-go (evobgp-scheduler, 0, deploy/docker/gobinary/Dockerfile, , evobgp-scheduler) (push) Successful in 1m19s
feat: auto-refresh non-IP module updates and add full project manual
Queue module refresh jobs after AS, domain, and CDN source mutations (including CSV imports) to keep revisions current across all source types, and introduce a comprehensive project manual covering runtime modules, flows, and API operations.

Made-with: Cursor
2026-04-07 21:09:38 +07:00

Gitea Actions

В репозитории включён workflow workflows/ci.yaml.

Job changes вычисляет два флага:

  • openapi — в диффе есть docs/openapi.yaml или redocly.yaml → запускается openapi (Redocly lint).
  • code — в диффе есть хотя бы один файл вне «только документация» → запускаются go, bird2 и при push в main/master docker-images.

Если изменены только файлы из списка ниже, code=false: Go-тесты, bird2 и сборка образов не запускаются; при необходимости всё ещё выполняется openapi, если трогали OpenAPI или redocly.yaml.

Список путей «только документация» (без полной сборки): всё под docs/, корневой README.md, web/README.md, .gitea/README.md, redocly.yaml.

Любой другой путь (в т.ч. .gitea/workflows/ci.yaml, go.mod, web/package.json, deploy/**, **/*.go) включает полный пайплайн.

Требования к runner:

  • Метка ubuntu-latest (или измените runs-on под свои labels).
  • Job bird2 ставит пакет bird2 из репозитория Ubuntu на runner (как образ evobgp-bird2 на ubuntu:noble) и вызывает bird -c … -p по файлам в checkout (без вложенного Docker: иначе bind-mount /workspace/... часто не виден демону Docker на хосте).
  • Job docker-images требует Docker и (для push) доступ к Container Registry Gitea с runner’а.

Сборка и публикация образов (docker-images)

Запускается только при push в ветки main или master (после успешного job go). Собираются образы из deploy/docker/* (все бинарники через gobinary, плюс evobgp-web, evobgp-agent, evobgp-bird2).

Секреты репозитория (для push в реестр)

Хост Container Registry в workflow зашит: git.shts.su (docker/login-action и теги образов).

В настройках репозитория Gitea: Settings → Actions → Secrets (или аналог):

Секрет Назначение
ACTIONS_PAT (Опционально) PAT с правом записи пакетов. Если не задан, для docker login используется gitea.token (нужны права у workflow на пакеты).

Вход в реестр в workflow:

  • registry: git.shts.su;
  • username: ${{ gitea.actor }};
  • password: ${{ secrets.ACTIONS_PAT || gitea.token }}.

Почему шаг «Log in to Gitea Registry» мог быть skipped

Раньше в if: стояло secrets.ACTIONS_PAT != ''. В Gitea act_runner такая проверка секрета в условии шага часто всегда ложна, из‑за этого логин всегда skipped. Сейчас условие только docker_push == 'true' (всегда при нормальном шаге Prepare), пароль: secrets.ACTIONS_PAT || gitea.token.

Если после правки docker login падает с 401/403 — выдайте job-токену или PAT право записи в Container Registry (в настройках Gitea / организации / репозитория, в зависимости от версии).

Если gitea.token в выражениях недоступен, в ci.yaml замените пароль на ${{ secrets.ACTIONS_PAT || github.token }}.

Имена образов и теги

Формат:

git.shts.su/<owner_lowercase>/<имя>:<тег>

где <имя> — одно из: evobgp-api, evobgp-all, evobgp-scheduler, evobgp-ingest, evobgp-render, evobgp-deploy, evobgp-node, evobgp-web, evobgp-web-all (UI с прокси на evobgp-all для профиля Compose microvps-full), evobgp-agent, evobgp-bird2.

Теги: latest, короткий SHA (7 символов), sha-<полный_commit_sha>.

Пример pull:

docker pull git.shts.su/myuser/evobgp-api:latest

Полная таблица образов, тегов, ссылок на страницы пакетов в Gitea и минимальный docker run для сервера без сборки — в docs/quickstart.md (раздел «Готовые образы без сборки»).

Убедитесь, что в Gitea включены пакеты (Container Registry) и у токена есть права на создание/обновление образов. Другой хост реестра — правьте registry: и префикс IMG= в ci.yaml.

Примечания

  • Сборка с платформой linux/amd64. При необходимости добавьте linux/arm64 и multi-arch в docker buildx build.
  • Для PR job docker-images не выполняется (только push в main/master), чтобы не публиковать образы из чужих форков без явной политики.
S
Description
No description provided
Readme
5.7 MiB
0 Stars 1 Watchers 0 Forks
v2.57.0
Latest
2026-11-02 18:53:30 +07:00
Languages
TypeScript 59.1%
Go 38.2%
Shell 1.4%
PowerShell 0.5%
CSS 0.2%
Other 0.5%