Gitea Actions
В репозитории включён workflow workflows/ci.yaml.
Job openapi (Redocly) запускается только если в коммите или PR изменились docs/openapi.yaml или redocly.yaml; иначе шаг пропускается. Остальные jobs (go, bird2) выполняются как раньше.
Требования к runner:
- Метка
ubuntu-latest(или изменитеruns-onпод свои labels). - Job
bird2ставит пакет bird2 черезapt-getна самом runner и вызывает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 в реестр)
В настройках репозитория Gitea: Settings → Actions → Secrets (или аналог):
| Секрет | Назначение |
|---|---|
GITEA_REGISTRY_HOST |
Хост Docker-реестра (допустимо с https:// — в workflow схема отрезается). Пример: git.example.com или git.example.com:3000. Значение попадает в переменную окружения REGISTRY для docker/login-action. |
ACTIONS_PAT |
Персональный токен с правом записи пакетов (container / package write). Используется как пароль при docker login. |
Вход в реестр в workflow:
- registry:
${{ env.REGISTRY }}(из шага подготовки); - username:
${{ gitea.actor }}— пользователь, от имени которого запущен workflow (нативный контекст Gitea Actions); - password:
${{ secrets.ACTIONS_PAT }}.
Если GITEA_REGISTRY_HOST не задан или нет ACTIONS_PAT, job только собирает образы локально (docker buildx --load) без push.
Имена образов и теги
Формат:
<GITEA_REGISTRY_HOST>/<owner_lowercase>/<имя>:<тег>
где <имя> — одно из: evobgp-api, evobgp-all, evobgp-scheduler, evobgp-ingest, evobgp-render, evobgp-deploy, evobgp-node, evobgp-web, evobgp-agent, evobgp-bird2.
Теги: latest, короткий SHA (7 символов), sha-<полный_commit_sha>.
Пример pull (подставьте свой хост и владельца):
docker pull git.example.com/myuser/evobgp-api:latest
Убедитесь, что в Gitea включены пакеты (Container Registry) и у токена есть права на создание/обновление образов. Если ваш инстанс требует другой путь имени образа, скорректируйте шаг Build and push в ci.yaml (переменная IMG).
Примечания
- Сборка с платформой
linux/amd64. При необходимости добавьтеlinux/arm64и multi-arch вdocker buildx build. - Для PR job docker-images не выполняется (только push в main/master), чтобы не публиковать образы из чужих форков без явной политики.