DenozordecandCursor cb14194a5f
CI / changes (push) Successful in 8s
CI / commitlint (push) Has been skipped
CI / openapi (push) Successful in 28s
CI / web (push) Failing after 9s
CI / go (push) Successful in 58s
CI / bird2 (push) Successful in 15s
CI / release (push) Has been skipped
fix(ci): order setup-node before pnpm action and cache pnpm store
Job web падал на шаге pnpm/action-setup@v4 (Running self-installer)
из-за неверного порядка: pnpm/action-setup вызывался до
actions/setup-node, поэтому Node.js ещё не был настроен к моменту
запуска self-installer pnpm. Добавление packageManager в package.json
усугубило ситуацию — action начал honour'ить его через node-зависимый
инсталлер, которому не хватило Node.

Изменения в job web:
- actions/setup-node@v4 (node 22) перенесён ВЫШЕ pnpm/action-setup@v4;
- кэш pnpm-store включён через cache: true в pnpm/action-setup
  (вместо cache: pnpm в setup-node, который требует pnpm установленным
  раньше и спотыкается о тот же порядок).

Версия pnpm задаётся полем packageManager в package.json (pnpm@10.33.2)
и дублируется в Dockerfile через corepack prepare, поэтому version: 10
в action оставлен как совместимый fallback.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 23:09:44 +07:00
2026-05-19 17:58:24 +00:00

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:

  1. npx semantic-release — тег vX.Y.Z на текущий commit (без дополнительного commit в main).
  2. Gitea Release + CHANGELOG.md как attachment (не в git).
  3. 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

См. deploy/docker/README.md, docs/quickstart.md.

S
Description
No description provided
Readme
5.7 MiB
0 Stars 1 Watchers 0 Forks
v2.57.0
Latest
2026-11-02 18:53:30 +07:00
Languages
TypeScript 59.1%
Go 38.2%
Shell 1.4%
PowerShell 0.5%
CSS 0.2%
Other 0.5%