Files
EvoBGP/.gitea
Denozordec bb334b10f5
CI / changes (push) Successful in 7s
CI / commitlint (push) Has been skipped
CI / openapi (push) Successful in 23s
CI / web (push) Successful in 28s
CI / go (push) Successful in 26s
CI / bird2 (push) Successful in 15s
feat: implement versioning and release management in the project
- Added automatic versioning based on git tags using semantic-release in Gitea Actions.
- Introduced new API endpoints `GET /version` and `GET /v1/version` to expose build metadata.
- Updated Docker build process to include version and build time information in Go binaries.
- Enhanced documentation with details on release processes and versioning guidelines.
- Integrated version display in the web application for better user visibility.
2026-05-20 00:56:02 +07:00
..

Gitea Actions

Workflow-файлы в workflows/:

Workflow Триггер Назначение
ci.yaml push/PR в main/master openapi, web, go, bird2, commitlint (PR)
release.yaml после успешного CI (push в main) semantic-release → tag, CHANGELOG, Gitea Release
publish.yaml push тега v* docker buildx bake → Container Registry

Подробнее о версионировании: docs/releasing.md.

CI (quality gates)

Job changes вычисляет флаги по путям в diff (openapi, go, web, bird_conf, …). Изменение .gitea/workflows/* поднимает полный прогон.

На pull request дополнительно запускается commitlint (Conventional Commits).

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

  • Метка ubuntu-latest.
  • Job bird2 ставит bird2 из репозитория Ubuntu и вызывает bird -c … -p.
  • Job publish требует Docker и доступ к Container Registry.

Release (semantic-release)

После успешного CI на push в main/master workflow Release запускает npx semantic-release (корневой package.json, .releaserc.json).

Результат при releasable-коммитах:

  • git tag vX.Y.Z;
  • commit CHANGELOG.md с [skip ci];
  • Gitea Release с release notes.

Секреты

Один PAT — ACTIONS_PAT: push/t/tags, releases, запись в Container Registry. Если не задан — fallback на gitea.token (нужны права на releases и packages в Gitea).

GITEA_URL: https://git.shts.su (задано в workflow).

Publish (образы)

Запускается только при push git-тега vX.Y.Z (не при каждом push в main).

Собираются все образы из deploy/docker/* (docker buildx bake default --push). Semver из тега передаётся в Go-бинарники (VERSION, GIT_SHA, BUILD_TIME).

Registry: git.shts.su. Login: ${{ gitea.actor }} / ${{ secrets.ACTIONS_PAT || gitea.token }} (тот же ACTIONS_PAT, что и для release).

Теги образов

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

Имена: evobgp-api, evobgp-all, evobgp-scheduler, evobgp-ingest, evobgp-render, evobgp-deploy, evobgp-node, evobgp-web, evobgp-web-all, evobgp-agent, evobgp-bird2.

Теги при релизе v1.2.3: latest, v1.2.3, короткий SHA, sha-<full_commit>.

Пример:

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

Подробности — docs/quickstart.md, deploy/docker/README.md.