Denozordec 6008cd763a
quality / commitlint (push) Skipped
CD / update-wiki (push) Successful in 8s
quality / changes (push) Successful in 5s
quality / api (push) Skipped
quality / docker-check (push) Skipped
quality / web (push) Successful in 58s
CD / quality (push) Successful in 1m6s
CD / publish (push) Successful in 1m44s
refactor(health): clean up health check configuration and UI components
- Removed unused imports and alerts related to Cloudflare, Globalping, and Local health checks from the HealthCheckConfigFields component.
- Simplified the logic for rendering health check sources and improved layout responsiveness by adding min-width classes.
- Introduced new Cloudflare and Globalping SVG icons for better visual representation in the HealthSourceTiles component.
- Refactored the TilePanel component to enhance its structure and ensure proper handling of minimum width for child elements.

This commit streamlines the health check configuration UI, improving maintainability and user experience.
2026-08-19 19:37:36 +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; wiki параллельно
workflows/quality.yaml reusable (workflow_call) changes, 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 quality jobs не запускают (wiki — отдельный job в CD).

На 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. HUSKY=0 в scripts/ci/pnpm-ci.sh (у корня есть prepare: husky).

Если 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-образов в cfdm-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 cfdm (cleanup: false).

Если releasable-коммитов нет — semantic-release no-op, образы не публикуются.

Повтор упавшего publish (тег уже есть, bake нет): detect берёт v* на HEAD и всё равно пушит образы. Подробнее: docs/releasing.md.

Job update-wiki идёт параллельно publish (не блокирует образы): при diff docs/Home.md копирует файл в wiki-репозиторий. Clone/push идут на публичный https://git.shx.one (не внутренний gitea.server_url / 192.168.x.x:3000): Gitea ROOT_URL совпадает с Host, иначе git-receive-pack wiki отвечает Repository not found. Токен в URL https://oauth2:<PAT>@…/*.wiki.git — Gitea на неаутентифицированный wiki push даёт 404, не 401, поэтому http.extraHeader / ASKPASS не срабатывают. Секрет: ACTIONS_PAT, fallback GITEA_TOKEN.

Секреты

ACTIONS_PAT: push tags, releases, Container Registry. Для git tag fallback: gitea.token. Push OCI — только PAT (у job token Gitea нет права packages).

GITEA_TOKEN: опциональный wiki-only PAT (fallback, если нет ACTIONS_PAT).

Теги образов

git.shx.one/<owner>/cfdm:latest
git.shx.one/<owner>/cfdm:v1.2.3
git.shx.one/<owner>/cfdm:1.2.3
git.shx.one/<owner>/cfdm:<short-sha>
git.shx.one/<owner>/cfdm:sha-<full-sha>

Тот же манифест публикуется как cloudflare-domain-manager (drop-in для текущего docker pull).

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

Пример:

docker pull git.shx.one/denozord/cfdm:latest
docker pull git.shx.one/denozord/cloudflare-domain-manager:latest

См. 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
115 MiB
0 Stars 1 Watchers 0 Forks
v1.28.0
Latest
2026-11-02 21:38:55 +07:00
Languages
TypeScript 98.6%
JavaScript 0.7%
CSS 0.3%
Shell 0.2%
HCL 0.1%
Other 0.1%