Denozordec 9fa6269174
quality / changes (push) Successful in 7s
quality / commitlint (push) Skipped
quality / openapi (push) Successful in 30s
quality / web (push) Successful in 1m3s
quality / api (push) Successful in 1m15s
quality / linux-agent-smoke (push) Failing after 27s
quality / docker-check (push) Failing after 2m28s
CD / quality (push) Failing after 5m52s
CD / publish (push) Skipped
feat: harden firewall policies telemetry and operations
Implement reliable agent apply, telemetry v2, analytics retention, guarded rollouts, enrollment, labels and webhooks. Improve ReUI frontend data safety and bounded list loading, and add Docker smoke, recovery and resource checks. Document local verification and pending native acceptance.
2026-10-26 13:10:58 +07:00
2026-07-20 19:28:56 +07:00
2026-07-20 19:28:56 +07:00

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, api, commitlint, docker-check

Подробнее: docs/releasing.md.

CI (quality gates)

Job changes вычисляет флаги по путям в diff. Полный прогон: .gitea/workflows/*, scripts/*, корневой package.json / pnpm-lock.yaml / .releaserc.json. Правки .cursor/, .claude/, *.md (кроме docs/openapi.yaml) quality jobs не запускают.

На pull request — commitlint. При изменении deploy/docker/** / .dockerignore — job docker-check (bake --print, bake без --push если есть доступ к registry).

Кэш зависимостей — нативный actions/cache (cache server act_runner), ключ sha256sum lockfile (не hashFiles). Пути абсолютные ($HOME/.pnpm-store): тильда ~ на Gitea часто не раскрывается и даёт вечный miss.

Кэшируется целиком: pnpm store + node_modules + corepack. При hit: pnpm install --offline.

Если restore пишет connect ECONNREFUSED / cache server not configured — на runner включите cache server (см. ниже). Иначе каждый job снова качает пакеты (~минуты).

Runner: ubuntu-latest, Docker для docker-check (PR) и publish (CD).

CD (job publish)

После успешных quality gates на push в main job publish:

  1. pnpm exec semantic-release — тег vX.Y.Z на текущий commit (без дополнительного commit в main).
  2. Gitea Release + CHANGELOG.md как attachment (не в git).
  3. Зеркало base-образов в evofw-buildcache:base-* (deploy/docker/mirror-base-images.sh; skip существующих тегов, linux/amd64, retry при 429).
  4. docker buildx bake default --push с VERSION=X.Y.Z, pull=false, named builder evofw (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>/evofw:latest
git.shx.one/<owner>/evofw:v1.2.3
git.shx.one/<owner>/evofw:1.2.3
git.shx.one/<owner>/evofw:<short-sha>
git.shx.one/<owner>/evofw:sha-<full-sha>

Тот же манифест публикуется как evofirewall (drop-in для старого compose).

Кэш сборки: evofw-buildcache:node-buildcache и evofw-buildcache:base-*.

Пример:

docker pull git.shx.one/denozord/evofw:1.2.3

См. deploy/docker/README.md.

act_runner: cache server

actions/cache ходит в встроенный cache server runner (не GitHub type=gha). Кэш локален для этого runner.

В config.yaml runner:

cache:
  enabled: true
  dir: ""          # по умолчанию $HOME/.cache/actcache
  host: ""         # IP, доступный из job-контейнера (не 0.0.0.0)
  port: 8088

Если runner в Docker, а jobs — отдельные контейнеры: пробросьте порт и задайте host (LAN IP хоста) или external_server: "http://<host>:8088/". Иначе restore — timeout/ECONNREFUSED и пакеты качаются снова.

Не делайте docker system prune -a по cron: сотрётся и Docker-кэш FROM, и пользы от cleanup: false у buildx не будет.

S
Description
No description provided
Readme
1.6 MiB
0 Stars 1 Watchers 0 Forks
v1.5.1
Latest
2026-10-26 15:11:47 +07:00
Languages
TypeScript 89.7%
Shell 5.4%
RouterOS Script 2.3%
JavaScript 1.8%
CSS 0.3%
Other 0.4%