Rolder cloud-конструктор (deploy-контекст): тела kind'ов + core + _lib. Consumed by customer devenv input cloud.
  • Nix 58.4%
  • Shell 41.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
ansible-phase3-build-cloud-deploy acc4f021e9
Some checks failed
deploy.yml / Phase 3 build: cloud deploy v2 (@rolder/cloud 0.8.0) (push) Failing after 0s
Phase 3 build: cloud deploy v2 (@rolder/cloud 0.8.0)
2026-09-06 12:47:48 +08:00
.forgejo/workflows Phase 3 build: cloud deploy v2 (@rolder/cloud 0.8.0) 2026-09-06 12:47:48 +08:00
.test-fixture-contract-doc sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
.test-fixture-deploy-workflow-drift sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
.test-fixture-deploy-workflow-ok sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
.test-fixture-drift sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
.test-fixture-kuzzle-build sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
.test-fixture-secrets sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
.test-fixture-secrets-surreal sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
.test-fixture-server-bring sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
_lib sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
core sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
kuzzle sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
reference sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
server sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
surrealdb sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
devenv.nix sync: talos/k8s/cloud from cloud repo 2026-08-29 19:12:10 +08:00
README.md Phase 3 build: cloud deploy v2 (@rolder/cloud 0.6.0) 2026-09-02 18:15:12 +08:00

forge-public/cloud@v2

Единственный reusable-workflow конвейера доставки: заменяет пару server-publish@v1 + cloud-render@v1. Здесь лежит только .forgejo/workflows/deploy.yml — сам инструмент не здесь, он приезжает npm-пакетом @rolder/cloud из реестра кузни. Источник правды на инструмент — talos/k8s/cloud-tool/ в репозитории облака.

Править файлы в этом репозитории бесполезно: плей M100 --tags cloud-deploy перезапишет их при следующем прогоне — этот репозиторий генерируется, а не редактируется руками.

Использование

Caller у потребителя — константа, одинаковая во всех репозиториях:

on: { push: { branches: ['deploy/**'] }, workflow_dispatch: {} }
jobs:
  deploy:
    uses: forge-public/cloud/.forgejo/workflows/deploy.yml@v2
    secrets: inherit

Как получить инструмент

В проекте — так. Скоуп в .npmrc РЕПОЗИТОРИЯ, пакет в devDependencies:

echo '@rolder:registry=https://git.rolder.cloud/api/packages/forge-public/npm/' >> .npmrc
bun add -d @rolder/cloud
bunx cloud check

Тогда версия пинится локфайлом, скоуп едет вместе с репозиторием, а bunx cloud резолвится из локального node_modules/.bin и в реестр на запуске не ходит вовсе.

Разово, без установки — только через bun x, и обязательно им, а не bunx:

bun x --bun @rolder/cloud@<версия> check     # скоуп @rolder в $HOME/.npmrc

Почему именно bun x: bunx в системе может оказаться ДРУГОЙ, отстающей сборкой bun, чем bun (замер 2026-09-02: bunx из nix-профиля 1.3.13 скоуп не читает и уходит на npmjs с 404, bun x из ~/.bun 1.4.0 читает). Скоуп для этой формы работает только в $HOME/.npmrc: bun x исполняется из своего временного каталога и файлов проекта не видит. ~/.bunfig.toml не работает вовсе — если где-то остался такой совет, он неверен.

Контракт

Справочник полей декларации cloud.yaml печатает сам инструмент — файла с ним нет ни здесь, ни в репозитории потребителя, ни в скиле:

bunx cloud reference                        # весь контракт: форма, уровни, поля
bunx cloud reference --kind server --json   # для агента

Раздел «Форма» отвечает на вопрос, которого нет в списке полей: инстанс лежит под именем вида, среды — под инстансом, и часть полей (origin, env, secrets) стоит у инстанса, а не у среды.

Без версии bunx берёт latestа latest и то, что гоняет @v2, это одна и та же публикация: плей M100 --tags cloud-deploy публикует пакет и двигает тег v2 одним прогоном и отказывается публиковать рассинхрон. Значит локальная проверка и CI смотрят на один контракт.