Enhanced the firewall client functionality by introducing packet statistics tracking, including the cumulative count of packets dropped and accepted. Updated the API to support these new fields and modified the database schema accordingly. Improved the firewall scripts to collect and report packet statistics, ensuring better visibility into client performance. Adjusted the UI components to display packet counts in the clients table, enhancing user experience and monitoring capabilities.
Gitea Actions
Workflow: workflows/ci.yaml.
| Job | PR | push в main |
|---|---|---|
| changes, openapi, web, go, bird2 | quality gates | quality gates |
| commitlint | да | — |
| release | — | semantic-release + docker push (один run) |
Подробнее: docs/releasing.md.
CI (quality gates)
Job changes вычисляет флаги по путям в diff. Полный прогон (все узлы openapi / web / go / bird2 в графе): .gitea/workflows/*, scripts/*, .golangci.yml, .pre-commit-config.yaml, корневой package.json / .releaserc.json. Отдельно: migrations/*, docs/openapi.yaml → go / openapi и т.д. (см. ci.yaml).
На pull request — commitlint (Conventional Commits).
Runner: ubuntu-latest, bird2 из apt, Docker для job release.
Release (job в ci.yaml)
После успешных quality gates на push в main job release:
npx semantic-release— тегvX.Y.Zна текущий commit (без дополнительного commit в main).- Gitea Release +
CHANGELOG.mdкак attachment (не в git). docker buildx bake default --pushсVERSION=X.Y.Z— в том же job.
Если releasable-коммитов нет — semantic-release no-op, образы не публикуются.
Секреты
ACTIONS_PAT: push tags, releases, Container Registry. Fallback: gitea.token.
Теги образов
git.shts.su/<owner>/<имя>:latest
git.shts.su/<owner>/<имя>:v1.2.3
git.shts.su/<owner>/<имя>:1.2.3
git.shts.su/<owner>/<имя>:<short-sha>
git.shts.su/<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.
Удалённый спикер (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.shts.su/myuser/evobgp-api:1.2.3