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.

I2710 — Běh release nikdy nečeká za validacemi pull requestů na slot pro úlohu

Dát cestě release (workflow release, verdiktu pull requestu se záznamem a nasazení Pages, které release publikuje) přednost před validate větví ve sdíleném poolu runnerů, aby se publikovaný release dostal na majordomus.dev v rámci vlastní doby běhu.

HOTOVO vlna 0 · p0 · profil implementation · bezpečné souběžně

Součást M004 — Výkon je spustitelný důkaz a horká cesta nedělá žádnou kanonickou práci dvakrát.

Cíl

Dát cestě release (workflow release, verdiktu pull requestu se záznamem a nasazení Pages, které release publikuje) přednost před validate větví ve sdíleném poolu runnerů, aby se publikovaný release dostal na majordomus.dev v rámci vlastní doby běhu.

Proč

2026-10-14 19:07Z: v0.26.0 byla publikována, ale její záznamový PR #1147 byl BLOCKED: verdiktový běh 38620987044 a nasazení Pages 38620990702 stály ve frontě, protože validate pull requestů #897 a #946 držely všech 20 slotů úloh. majordomus.dev dál nabízel 0.25.0 a HOLD přistání nešlo zvednout; běh #897 byl zrušen ručně, aby se uvolnily sloty. Vlastník: \"tohle se nesmi stavat\".

Aktuální stav

Každý workflow soutěží o stejný pool runnerů, kdo dřív přijde, ten dřív mele. Nic nenutí validate pull requestu ustoupit, zatímco release, jeho verdikt záznamu nebo nasazení Pages čeká na slot.

Cílový stav

Zatímco běh release, verdikt pull requestu záznamu nebo nasazení Pages masteru čeká nebo běží, pull-request validate, který ještě neskončil, ustupuje: nespouští nové úlohy (nebo se zruší s důvodem jmenujícím běh release a po něm se znovu vyžádá) a cesta release nikdy nečeká na slot, který drží validate větve. Vlastní validate masteru se tím nikdy neruší.

Rozsah

  • .github/workflows/validate.yml
  • .github/workflows/release.yml
  • scripts/ci
  • docs/CI.md
  • docs/RELEASE.md
  • test/cases

Mimo rozsah

  • Nákup runnerů nebo změna velikosti poolu

Závislosti

Žádné. Tento úkol je kořenem grafu.

Kritéria přijetí

  • Když je ve frontě běh release nebo verdikt záznamu, validate pull requestu ustoupí do minuty a řekne, kterému běhu release ustoupil
  • Ustoupivší validate se znovu vyžádá, jakmile je cesta release hotova, bez člověka
  • Validate na master a samotná cesta release nejsou pravidlem nikdy rušeny

Validace

  • bin/majordomus plan validate

Požadované důkazy

  • release_path_has_priority_case

Důkazy

pokrývátypcommandvýsledeku commitu
release_path_has_priority_casetestMJ_TEST_JOBS=3 bash test/run.sh 3027_the_release_path_goes_first 3028_the_pages_job_waits_for_its_deployment 3029_a_tag_in_flight_is_pending 3021_a_tag_does_not_freeze_the_queue 3019_a_failed_branch_run_cancels_itself 103_release_projection 94_ci_plantesty: 7 prošlo, 0 selhalo (běh 2026-10-14 ~22Z na masteru c0e3585dc836201089d6b5dd49f5a79fe8bff798 plus tato změna); případ 3027 řídí scripts/ci/release-path nad fixture seznamy běhů: validate PR dává (zrušit + štítek + komentář jmenující běh release), zatímco je release, verdikt záznamu nebo bot-dispatchovaný běh Pages zaneprázdněn, preempt zruší frontu validate PR při pushi tagu, resume je znovu spustí, jakmile je cesta volná, běhy a dispatche masteru se nikdy nedotknouc0e3585

Časová osa

zahájeno
2026-10-14T22:00:40Z
ověřeno
—
dokončeno
2026-10-14T22:02:16Z

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.

Kanonický záznam: .ai/repo/project/issues/I2710.yaml. Přečtěte jej zpět pomocí majordomus plan show I2710.

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