Tovább a tartalomhoz

Pipeline-sablon létrehozása

A pipeline-sablonokat a munkaterület beállításaiban hozza létre. A munkaterület oldalsávjában a Pipeline-ok elem a futtatási várólista, nem a sablonok listája — nincs „sablon létrehozása” művelete.

Hogy mit jelentenek az egyes lépésfajták, törzskulcsok és konfigurációs mezők, lásd a pipeline-lépések referenciáját.

  1. Nyissa meg a Beállítások → Munkaterület → Pipeline-sablonok helyet (/workspaces/<workspace-id>/settings/pipelines).
  2. Nyomja meg az Új sablon gombot.

Nincs azonosító-párbeszédablak. A szerkesztő azonnal megnyílik egy Új pipeline nevű, előre feltöltött vázon, automatikusan kiosztott azonosítóval (pipeline_1, majd pipeline_2, …). A fejlécben a címre kattintva nevezheti át.

A vászon nem üres: van rajta egy Trigger belépő csomópont, egy Step címkéjű prompt-agent csomópont, és egy terminál-őrszem, amely befejezi a futtatást. Az őrszem nincs kirajzolva. A szerkesztő ezt a rejtett terminált minden elérhető nyelőhöz átkötözi, így a Step után csatolt munka is lefut.

A Csomópontkönyvtár oldalsáv állandóan a szerkesztő bal oldalán van. Szűrje a Csomópontok keresése mezővel, és húzzon egy elemet a vászonra — a csomópont oda kerül, ahová ejti, bejövő kapcsolat nélkül.

Palettacsomópont Lépésfajta Mit tesz
Bash script listen Shellszkriptet futtat {{state}} helyettesítéssel; nem indul ügynök
Open conversation listen Megnyitja a futtatás egyetlen látható terét és annak checkoutját; az ügynökcsomópontok ebbe a szobába csatlakoznak
Clone PR branch listen A gh pr view segítségével felderíti a PR fejágát, és a futtatási könyvtárba klónozza
Post PR comment listen A konszolidált megállapításokat GitHub-átnézési megjegyzésként közzéteszi a PR-en
Reviewer (prompt) listen Szakértő átnéző ügynököt oszt ki; felfüggeszti magát, amíg az ügynök be nem küldi az eredményét
Consolidate (join) join Megvár több felsőbb ágat, majd megkér egy ügynököt, hogy konszolidálja a kimeneteiket
Custom prompt listen Általános, promptvezérelt csomópont, amely a promptAgent törzsön keresztül halad
Post to space listen Üzenetet küld egy üzenetküldő térbe
Condition / switch (router) router Egy állapotérték alapján elágaztatja a folyamatot
If file exists (router) router "true" útvonalra visz, ha egy útvonal létezik a klón alatt, egyébként "false"-ra
Any file exists (OR router) router "true"-ra visz, ha bármelyik felsorolt útvonal létezik
All conditions (AND router) router Csak akkor visz "true"-ra, ha minden felsorolt útvonal létezik
Team dispatch listen Egy egész csapatot kioszt, és felfüggeszti magát, amíg az be nem fejezi
Approval gate listen Megáll egy jóváhagyási döntésre várva
For each (map) forEach Elemenként megjelenít egy promptot, majd egyszer osztja ki az ügynököt az összefűzött promptokkal
Call sub-pipeline listen Egy másik sablont futtat beágyazott lépésként
Clean up worktrees listen Eltávolítja az elavult elszigetelt worktree-ket; determinisztikus, nem indul ügynök

A könyvtár ezeket a Folyamat és logika, PR-átnézés, Ügynökök, Üzenetküldés és Kód csoportba rendezi. Nincs Demo csoport.

Minden munkacsomópont jobb szélén van egy kör alakú kimeneti port. Húzzon erről a portról egy másik csomópontra az összekötésükhöz. Az indító eseményindítók ugyanilyenek: mindegyik a saját portjával rendelkezik, így egy Ütemezés felőli vezeték nem indul ki a Kézi futtatásból is. Nyomja meg a Lépés hozzáadása (+) gombot egy csomópont után, hogy beszúrjon oda egy típust. Vigye az egérmutatót egy meglévő él felezőpontjára, és nyomja meg a × jelet a leválasztáshoz.

A kapcsolatok abból a csomópontból is szerkeszthetők, amely fogadja őket:

  1. Jelölje ki az alsóbb csomópontot. A konfigurációs panelje a jobb oldalon nyílik meg.
  2. Görgessen a Triggers from részhez, és kattintson minden olyan felsőbb csomópont címkéjére, amelyre ennek figyelnie kell. Egy kijelölt címkére kattintva megszűnik a kapcsolat.
  3. Ha egy felsőbb csomópont router, a címkék alatt megjelenik egy Útvonalkulcsok blokk, minden router-élhez egy Útvonalkulcs innen: <node> mezővel. Adja meg azt a kulcsot, amelyre az az él tüzel — true vagy false a fájllétezés-routereknél, vagy az eset neve egy kapcsolónál.

Minden eseményindító-csomópont belépési pont. Egy csomópont több felsőbb lépésre is figyelhet (fan-in), és több alsóbb lépést is táplálhat (fan-out), a gráfnak pedig körmentesnek kell maradnia — a szerkesztőben semmi sem akadályozza meg, hogy kört kössön össze, ezért ellenőrizze a munkáját.

A terminál-őrszem ki van szűrve a vászonról, így nem jelölhető ki. A szerkesztő a gráf minden változásakor minden elérhető nyelőhöz átkötözi, így az alapból létrehozott Step után csatolt munka is lefut. Egy üres gráf (munka utód nélküli eseményindító) magát az eseményindítót sorolja fel, hogy a futtatás azonnal befejeződjön.

Jelöljön ki egy csomópontot a konfigurációs paneljének megnyitásához. Az, hogy mely mezők jelennek meg, a csomópont törzsétől függ.

Minden csomóponton van Címke, Bemeneti kulcsok (vesszővel elválasztott állapotkulcsok, amelyek végrehajtáskor olvasódnak), valamint a Haladó alatt Reducer, Időtúllépés (ms), Újrapróbálkozások, Folytatás, ha ez a lépés sikertelen és Kimeneti séma. A listen és join csomópontok a Típus mezőben válthatnak is a kettő között.

Hozzáad egy repóhatókör-választót (a munkaterület mely repóit kell checkoutolni; üresen hagyva egyet sem), egy Tér neve mezőt és egy Beszélgetés megnyitása benne jelölőnégyzetet. Ha ez a jelölőnégyzet be van kapcsolva, egy Beszélgetés neve mező elnevezi azt az adatfolyamot, amellyel a szoba megnyílik. Az ügynökcsomópontok ebbe a szobába csatlakoznak — nem nyitnak sajátot.

Hozzáad egy Ügynök mezőt (melyik ügynököt ossza ki), egy Prompt mezőt (a {{key}} segítségével hivatkozhat a bemenetekre vagy a felsőbb lépések kimeneteire) és egy Kimeneti kulcs mezőt.

Az Időtúllépés (ms) ezredmásodpercben van, nem másodpercben — a 900000 15 percet jelent. A 900 megadása 0,9 másodpercet ad a lépésnek.

Annak a beszélgetésmódnak, amely alatt egy prompt-agent csomópont fut, nincs szerkesztői mezője az ügynökcsomóponton. Az extras['mode'] (chat, plan vagy review) hordozza azon az Open conversation csomóponton, amely létrehozta a szobát (alapértelmezés: review). Az ügynöklépésen beállítva figyelmen kívül marad. A kulcsot pontosan egyezteti: minden más írásmód csendben figyelmen kívül marad.

Hozzáad egy Bash szkript mezőt. Nincs munkakönyvtár- vagy környezetmező, mert egyik sem állítható be:

  • Egy futtatás minden bash-lépése ugyanazt a munkakönyvtárat használja: <cc_root>/pipelines/<runId>/.
  • A GITHUB_TOKEN a hitelesítőadat-tárból injektálódik, így a gh és a git clone https://x-access-token:$GITHUB_TOKEN@… beállítás nélkül működik.
  • A szkript a szó szerinti bash végrehajtható fájlként indul, ezért a bash-nek szerepelnie kell a szerverkiszolgáló PATH-jában. Ez Windows esetén szempont.

A router kiértékel egy feltételt, és visszaad egy útvonalkulcsot; a motor csak az ahhoz illeszkedő útvonalkulcsú alsóbb élt tüzeli, a többi ágat pedig kihagyottnak jelöli.

Egy router kijelölése lecseréli a Kimeneti kulcs mezőt a feltételszerkesztőre. Válasszon a négy módja közül:

  • Fájl(ok) léteznek — bármelyik — "true"-ra visz, ha bármelyik felsorolt útvonal létezik.
  • Fájlok léteznek — mind — csak akkor visz "true"-ra, ha minden felsorolt útvonal létezik.
  • Összehasonlítás — egy állapotértéket hasonlít össze egy literállal.
  • Kapcsoló — egy állapotkulcs értéke alapján visz tovább, alapértelmezett esettel.

Ezután állítsa be a hozzáillő útvonalkulcsokat a kimenő éleken (lásd: Csomópontok összekötése).

A logikai and / or / not csoportokat a törzs támogatja, de ebből az űrlapból nem szerkeszthetők — kézzel írt predikátumfa kell hozzájuk az extras.predicate alatt. A teljes predikátum- és operátorszótár a pipeline-lépések referenciájában található.

Nincs saját konfigurációja: megvárja az összes felsőbb lépését.

A kapu elindítja a jóváhagyó ügynököt egy rejtett beszélgetésbe a kapu promptjával, majd felfüggeszti magát. A jóváhagyó a beszélgetésben kéri ki a döntését, és a submit_output hívással küldi be { "decision": "approved" | "rejected", "reason": "..." } formában. A döntés a kimeneti kulcs alá kerül (alapértelmezés: approval_decision), így egy alsóbb kapcsoló-router elágazhat rá.

Állítsa az Ügynök mezőt a jóváhagyóra, a Prompt mezőt pedig a kapu kérdésére. A kapu a submit_output híváson keresztül oldódik fel { "decision": "approved" | "rejected", "reason": "..." } formában. A Reviewer (prompt) csomópontok ugyanígy küldenek be.

Hozzáad egy Csapat-ID és egy Kiosztási mód mezőt. A választó pontosan két módot kínál:

  • allParallel — tagonként egy feladat, felfüggeszti magát, amíg mind be nem fejeződik.
  • manager — a vezetőt osztja ki, aki delegál.

Bármely más tárolt érték az allParallel módként viselkedik. Állítsa a Reducer mezőt append értékre, hogy minden tag eredményét egy listába gyűjtse a kimeneti kulcs alatt.

A For each alapértelmezés szerint az items állapotkulcson képez le (extras.iterableKey / extras.itemKey a csomóponton). Elemenként egyszer jeleníti meg a promptját (alapértelmezés: {{item}}), és egyszer osztja ki az ügynököt az így összefűzött promptokkal. Egy üres gyűjtemény azonnal befejeződik egy üres listával. Ez nem elemenkénti párhuzamos kiosztás.

A Call sub-pipeline felfüggeszti magát, amíg a gyermekfuttatás végállapotba nem kerül, majd a gyermek végleges állapotát a kimeneti kulcs alá fésüli (alapértelmezés: subflow_result). Az extras.templateId értékkel mutathat rá egy gyermekre. Egy sablon nem hívhatja meg önmagát; egy sikertelen vagy megszakított gyermek sikertelenné teszi a szülő lépést, amely ezután az adott lépés újrapróbálkozási és hiba esetén folytatási szabályzatát táplálja.

Bemenetek deklarálása és kézi futtatások engedélyezése

Szekció neve “Bemenetek deklarálása és kézi futtatások engedélyezése”

Mindkettő a szerkesztő fejlécében a Kézi futtatás mögött érhető el.

  1. Nyomja meg a Kézi futtatás gombot.
  2. Kapcsolja be a Kézi futtatás engedélyezése lehetőséget. Ez a kapcsoló azonnal érvényesül — létrehozza (vagy törli) azt a manual eseményindító-sort, amelytől a sablon megjelenik a futtatási oldalon.
  3. Állítsa be a Max. párhuzamos futtatás értékét, ha korlátot szeretne (hagyja üresen a korlátlanhoz). A további indítások queued állapotban várnak, amíg fel nem szabadul egy hely.
  4. Nyomja meg a Bemenet hozzáadása gombot minden űrlapmezőhöz, amelyet egy kézi futtatásnak be kell gyűjtenie:
Mező Leírás
Kulcs Állapotkulcs, amely alatt az érték tárolódik; a {{key}} formában hivatkozhat rá
Címke Megjelenő címke (alapértelmezés a kulcs)
Típus Szöveg, Többsoros szöveg, Szám, Kapcsoló, Választó, Tároló
Opciók Vesszővel elválasztott választási lehetőségek, csak Választó típusnál
Alapértelmezett érték Előre kitöltött érték
Helyőrző A mezőben megjelenő tippszöveg, ha üres
Súgószöveg A mező alatti segédszöveg
Kötelező Hogy a futtatási űrlap megakadjon-e üres értéknél

Egy Tároló bemenet választót jelenít meg a munkaterület repói fölött, és a futtatás hasznos terhébe írja a repo_id, repo_local_path, repo_full_name, valamint — ha a repónak van GitHub-távolija — a repo_owner és a repo_name értékét.

  1. Nyomja meg a Mentés gombot a párbeszédablakban. A bemeneti módosítások bekerülnek a vázlatba; a sablon mentésekor válnak véglegessé.
  1. Nyomja meg a Mentés gombot a szerkesztő fejlécében. Addig a fejléc a „Mentetlen módosítások” jelzést mutatja.
  2. Térjen vissza a Beállítások → Munkaterület → Pipeline-sablonok helyre, és ellenőrizze, hogy a sablon sorában a kapcsoló be van kapcsolva. A motor elutasítja egy letiltott sablon indítását, és egy letiltott sablon soha nem jelenik meg a futtatási oldalon.
  3. Az automatikus indításhoz húzzon egy eseményindítót a csomópontkönyvtárból a vászonra — lásd: Pipeline-eseményindítók beállítása.