- Added `@redocly/cli` version 1.34.5 to `package.json` and `pnpm-lock.yaml` for OpenAPI linting. - Updated CI workflows to reflect changes in job names and processes, including adjustments to the `publish` job in the CD workflow. - Enhanced documentation to clarify the new CI/CD processes and Docker build configurations.
Gitea Actions
| Workflow | Когда | Что |
|---|---|---|
| workflows/ci.yaml | pull request в main/master | quality gates + commitlint |
| workflows/cd.yaml | push в main/master | quality gates + semantic-release + docker push |
| workflows/quality.yaml | reusable (workflow_call) |
changes, openapi, web, go, bird2, commitlint, docker-check |
Подробнее: docs/releasing.md.
CI (quality gates)
Job changes вычисляет флаги по путям в diff. Полный прогон: .gitea/workflows/*, scripts/*, .golangci.yml, .pre-commit-config.yaml, корневой package.json / .releaserc.json. Правки .cursor/, .claude/, *.md (кроме docs/api.md / docs/access.md / docs/openapi.yaml) quality jobs не запускают.
На pull request — commitlint. При изменении deploy/docker/** — job docker-check (bake --print, bake без --push если есть доступ к registry).
Кэш зависимостей: actions/cache с ключом sha256sum lockfile (go.sum / pnpm-lock.yaml). hashFiles в Gitea не используем.
Runner: ubuntu-latest, bird2 из apt, Docker для docker-check (PR) и publish (CD).
CD (job publish)
После успешных quality gates на push в main job publish:
pnpm exec semantic-release— тегvX.Y.Zна текущий commit (без дополнительного commit в main).- Gitea Release +
CHANGELOG.mdкак attachment (не в git). - Зеркало base-образов в
evobgp-buildcache:base-*(deploy/docker/mirror-base-images.sh). docker buildx bake default --pushсVERSION=X.Y.Z,pull=false, named builderevobgp(cleanup: false).
Если releasable-коммитов нет — semantic-release no-op, образы не публикуются.
Повтор упавшего publish (тег уже есть, bake нет): detect берёт v* на HEAD и всё равно пушит образы. Подробнее: docs/releasing.md.
Секреты
ACTIONS_PAT: push tags, releases, Container Registry. Для git tag fallback: github.token. Push OCI — только PAT (у GITEA_TOKEN нет права packages).
Теги образов
git.shx.one/<owner>/<имя>:latest
git.shx.one/<owner>/<имя>:v1.2.3
git.shx.one/<owner>/<имя>:1.2.3
git.shx.one/<owner>/<имя>:<short-sha>
git.shx.one/<owner>/<имя>:sha-<full-sha>
Имена образов: evobgp-api, evobgp-all, evobgp-scheduler, evobgp-ingest, evobgp-render, evobgp-deploy, evobgp-node, evobgp-web, evobgp-web-all, evobgp-agent, evobgp-bird2.
Кэш сборки: evobgp-buildcache:{go,web,birdc}-buildcache и evobgp-buildcache:base-*.
Удалённый спикер (compose deploy/compose/docker-compose.remote-speaker.yaml): evobgp-bird2, evobgp-agent, evobgp-node (fallback profile); Traefik — внешний traefik:latest. CI: scripts/validate-remote-speaker-compose.sh.
Пример:
docker pull git.shx.one/myuser/evobgp-api:1.2.3