Files
EvoBGP/.gitea/README.md
T
Denozordec 0b3ceaa7b8
CI / changes (push) Successful in 8s
CI / openapi (push) Has been skipped
CI / go (push) Successful in 21s
CI / docker-web (deploy/docker/evobgp-web/Dockerfile, , evobgp-web) (push) Successful in 1m8s
CI / docker-web (deploy/docker/evobgp-web/Dockerfile, evobgp-all, evobgp-web-all) (push) Failing after 47s
CI / docker-bird (push) Successful in 40s
CI / bird2 (push) Successful in 14s
CI / docker-go (deploy/docker/evobgp-agent/Dockerfile, , evobgp-agent) (push) Successful in 1m3s
CI / docker-go (evobgp-all, 1, deploy/docker/gobinary/Dockerfile, , evobgp-all) (push) Successful in 3m6s
CI / docker-go (evobgp-api, 1, deploy/docker/gobinary/Dockerfile, , evobgp-api) (push) Successful in 2m36s
CI / docker-go (evobgp-deploy, 0, deploy/docker/gobinary/Dockerfile, , evobgp-deploy) (push) Successful in 2m46s
CI / docker-go (evobgp-ingest, 0, deploy/docker/gobinary/Dockerfile, , evobgp-ingest) (push) Successful in 1m20s
CI / docker-go (evobgp-node, 0, deploy/docker/gobinary/Dockerfile, , evobgp-node) (push) Successful in 1m10s
CI / docker-go (evobgp-render, 0, deploy/docker/gobinary/Dockerfile, , evobgp-render) (push) Successful in 1m20s
CI / docker-go (evobgp-scheduler, 0, deploy/docker/gobinary/Dockerfile, , evobgp-scheduler) (push) Successful in 1m20s
refactor: switch BIRD installation from source to Ubuntu package. Update CI workflow and Dockerfiles for evobgp-agent and bird2 to install bird2 from the Ubuntu repository, improving compatibility and simplifying the build process.
2026-04-06 12:53:46 +07:00

5.5 KiB
Raw Blame History

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), чтобы не публиковать образы из чужих форков без явной политики.