Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I3821 — The tree a provider receives is assembled from the deployment object, and master publishes it after green ci

A typed capability deploy.slug assembles, outside the checkout, the tree a provider receives: the deployment object's build.inputs read at one commit, the generated provider files of that commit made executable, the inline buildpack line, and the executable built at that same commit; a workflow builds the musl executable at master's commit after master's ci succeeds, assembles the slug and pushes it to the provider with a workflow secret, and nothing else ever pushes to the provider. ADR 0219 decisions 3 and 5.

BLOKOVÁNO vlna 1 · p1 · profil implementation · běží samostatně

Součást fly-deployment — Image kontejneru je projekcí modelu repozitáře a jeho smoke test je jeho důkazem.

Blocked. This issue cannot start until I3820 is done. The status is derived from that, not declared.

Cíl

A typed capability deploy.slug assembles, outside the checkout, the tree a provider receives: the deployment object's build.inputs read at one commit, the generated provider files of that commit made executable, the inline buildpack line, and the executable built at that same commit; a workflow builds the musl executable at master's commit after master's ci succeeds, assembles the slug and pushes it to the provider with a workflow secret, and nothing else ever pushes to the provider. ADR 0219 decisions 3 and 5.

Proč

The live Gigalixir application was published from a slug assembled by hand, which is the parallel universe the owner refused on 2026-10-21, and it answers the release binary's commit rather than the tree it serves.

Aktuální stav

Measured on 27d017ea16a: deploy/gigalixir/{Procfile,bin/*} are generated from the object; no capability assembles a slug and no workflow publishes to the provider; the application runs a hand-assembled slug of 573df967bb5 with the v1.0.0-alpha.1 binary.

Cílový stav

majordomus deploy slug --deployment majordomus --commit <sha> --executable <path> --out <dir> writes exactly build.inputs, the provider files (mode 755 for bin/*), .buildpacks and the executable, refuses an out directory inside the checkout, and records the commit; .github/workflows/provider.yml runs on a successful master ci, builds the executable with MAJORDOMUS_BUILD_COMMIT set, assembles the slug and pushes it with GIGALIXIR_EMAIL/GIGALIXIR_API_KEY secrets; case 3821 assembles a fixture slug and proves its file list, modes and recorded commit.

Rozsah

  • apps/majordomus-cli/src/deploy
  • apps/majordomus-cli/src/capability/builtin/deploy.rs
  • .github/workflows/provider.yml
  • test/cases/3821_a_providers_tree_is_assembled_from_the_object.sh
  • dokumentace
  • .ai/repo/project/issues/I3821.yaml

Závislosti

Co na tom čeká

Kritéria přijetí

  • The slug holds the object's build.inputs at the named commit, the provider files with bin/* executable, the buildpack line and the executable, and nothing else
  • An out directory inside the checkout is refused
  • The workflow runs only after master's ci succeeded, builds at master's commit and pushes with secrets that appear in no file or log
  • The deployed /api/v1/live answers master's commit

Validace

  • env -u MAJORDOMUS_SHARE -u MAJORDOMUS_HTTP_HOST -u MJ_ROOT bash test/run.sh 3821_a_providers_tree_is_assembled_from_the_object

Požadované důkazy

  • slug_assembled_from_object
  • master_publishes_after_green_ci

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Canonical record: .ai/repo/project/issues/I3821.yaml. Read it back with majordomus plan show I3821.

Prohledává názvy a popisy všech stránek, které tento web publikuje.