Přeskočit na obsah

Nastavte spouštěče pipeline

Spouštěč je to, čím se pipeline spustí. Každý je uzel na plátně, puštěný ze sekce Spouštěče v knihovně uzlů. Výběr toho uzlu otevře vpravo jeho inspektor. Trvale otevřený seznam spouštěčů, karta spouštěčů ani obrazovka spouštěčů tu nejsou.

Otevři inspektor spouštěče

Sekce “Otevři inspektor spouštěče”
  1. Jdi do Nastavení → Pracovní prostor → Šablony pipeline.
  2. Stiskni tužku na řádku šablony a otevře se editor.
  3. Vyber na plátně uzel spouštěče. Vpravo se objeví panel s nastavením toho spouštěče. Když nic nevybereš, panel je schovaný.

Sekce Spouštěče v knihovně uzlů vypisuje každý druh startu jako vlastní uzel: ruční spuštění, plán, webhook a jednu kartu na doménovou událost. Hledej merged, ticket nebo název typu (PrMerged) a kartu přetáhni na plátno. Nová šablona ukáže u vstupní kotvy i zástupnou dlaždici Přidat spouštěč. Vybereš ze stejného prohledávatelného seznamu.

Spouštěč se vloží hned. Nové automatické spouštěče začínají vypnuté, aby samotné puštění nespustilo běh dřív, než ho nastavíš. Zapneš ho přepínačem Zapnuto v inspektoru, nebo ho smažeš ikonou koše.

Pusť na plátno Ruční spuštění (nebo ho vyber ze zástupné dlaždice) a v jeho inspektoru zapni Zapnuto. To zařadí šablonu do výběru pro spuštění. Není to zvláštní případ: přepínač zapíše obyčejný řádek spouštěče s typem události manual. Uloží se hned; není co ukládat.

Stejný přepínač je za Ruční spuštění v záhlaví editoru, vedle deklarovaných vstupů šablony.

Tyhle události spustí běh:

Popisek ve výběru Událost
Otevřen externí PR ExternalPrDetected
PR zveřejněn PullRequestPublished
Změna stavu PR PullRequestStatusChanged
PR sloučen PrMerged
Přijata zpráva MessageReceived
Ticket vytvořen TicketCreated
Stav ticketu se změnil TicketStatusChanged
Ticket přiřazen TicketAssigned
Ticket dokončen TicketCompleted
Ticket selhal TicketFailed
Ticket zrušen TicketCancelled
Překročen práh rozpočtu BudgetThresholdCrossed
Přidán repozitář RepoAdded
Nahrávání schůzky zastaveno MeetingRecordingStopped
Dovednost aktualizována SkillUpdated
Prostor smazán SpaceDeleted

SpaceDeleted poslouchá vestavěná pipeline na úklid worktree: nese id smazaného prostoru, takže běh uvolní worktree právě toho prostoru, místo aby procházel celý pracovní prostor.

Klíče payloadu, které každá událost nese, jsou v referenci doménových událostí.

Filtruj spouštěč události

Sekce “Filtruj spouštěč události”

Vyber uzel Změna stavu PR. Čipy stavu v inspektoru jsou jediný filtr, který umí rozhraní zapsat. Klepni na kterýkoli z merged, closed, approved, opened, reopened; spouštěč pak vystřelí jen tehdy, když status události odpovídá některému z nich. Když necháš všechny čipy nevybrané, filtr není.

Volné pole filtru v JSON tu není. Klíč filtru, který payload události nenese, se nikdy neshodne, takže filtr ručně nepiš proti klíči, který sis neověřil v referenci doménových událostí.

Vyber uzel Plán a nastav, kdy vystřelí. Pole inspektoru se uloží, jakmile je opustíš:

Pole Popis
Plán (cron nebo every:seconds) Výraz cronu o pěti polích, třeba 0 9 * * 1, nebo interval jako every:86400. Holé číslo se převede na every:<n>.
Časové pásmo (volitelné) Zóna IANA, třeba Europe/Paris. Výchozí je UTC.
Při zmeškaných bězích Co s výstřely, které server zmeškal, když neběžel: Spustit jednou srazí každý zmeškaný slot do jednoho výstřelu po restartu (výchozí), Přeskočit naváže až na dalším budoucím slotu.

Souhrnný řádek dlaždice na plátně rozepíše interval jen u tvaru every:<seconds>; výraz cronu se ukáže jen jako „Plán“.

Přetažení Webhook vygeneruje náhodný token. Vyber uzel a z inspektoru zkopíruj cestu POST /webhooks/<token>.

Token je zároveň tajemství HMAC: požadavek musí nést X-Hub-Signature-256: sha256=<hex>, kde hex je HMAC-SHA256(body, token). Doručení, které ověřením neprojde, se odmítne, zapíše do protokolu a nejde zopakovat. Duplicity se zahazují podle klíče deduplikace.

Každý vstup je vlastní uzel grafu. Tažením hrany z Plán připojíš jen plán; Ruční spuštění může jít jinou cestou (třeba uzlem Condition / switch (router)), než se připojí ke stejné práci. Běh vstoupí tím vstupem, který odpovídá jeho typu události, a přeskočí podgrafy ostatních vstupů.

Jak se spouštěč dostane k běhu

Sekce “Jak se spouštěč dostane k běhu”

Zapnutý spouštěč, kterému sedí typ události i filtr, spustí běh a payload události předá běhu jako payload spouštěče. Proti němu se dosazuje {{key}} v promptu nebo skriptu kroku. Události s přirozeným klíčem se deduplikují, takže stejná událost dvakrát nespustí dva běhy.

Vypnutá šablona se odmítne i tehdy, když její spouštěč sedí. Osm ze třinácti vestavěných šablon se dodává vypnutých, takže jejich založené spouštěče vystřelí do prázdna, dokud šablonu nezapneš.

  • Braň jen ruční cestu. Veď Ruční spuštění přes uzel Condition / switch (router) a Plán rovnou k práci. Každý vstup má vlastní hrany.
  • Zkontroluj každý nový PR. Událost PR zveřejněn na šabloně pr_review.
  • Uklid po sloučení. Událost Změna stavu PR, filtr na merged / closed / approved. Vestavěná šablona pr_merged_cleanup už takhle poslouchá, plus Ticket dokončen a Ticket zrušen, SpaceDeleted a denní plán, který se při každém opětovném založení zapne natvrdo, protože je to úklid.
  • Noční průchod. Plán 0 2 * * * s časovým pásmem, na šabloně, jejíž první uzel je Bash script.
  • Reaguj na externí systém. Spouštěč webhooku a volající systém podepíše tělo požadavku, jak je výše.