Bir pipeline şablonu oluşturma
Pipeline şablonları çalışma alanı ayarlarında yazılır. Çalışma alanı kenar çubuğundaki Pipelines girdisi çalıştırma kuyruğudur, şablon listesi değildir — orada “şablon oluştur” diye bir eylem yoktur.
Her adım türünün, gövde anahtarının ve yapılandırma alanının ne anlama geldiği için pipeline adımları referansına bakın.
Şablon oluşturma
Bölüm başlığı “Şablon oluşturma”- Ayarlar → Çalışma alanı → Pipeline şablonları sayfasına gidin
(
/workspaces/<workspace-id>/settings/pipelines). - Yeni şablon’a basın.
Kimlik soran bir iletişim kutusu yoktur. Düzenleyici hemen, Yeni pipeline
adlı tohumlanmış bir iskelet üzerinde otomatik atanmış bir kimlikle
(pipeline_1, sonra pipeline_2, …) açılır. Yeniden adlandırmak için üst
bilgideki başlığa tıklayın.
Tuval boş değildir: bir Trigger giriş düğümü, Step etiketli bir prompt ajanı düğümü ve çalıştırmayı bitiren bir terminal nöbetçisi vardır. Nöbetçi çizilmez. Düzenleyici bu gizli terminali ulaşılabilir her çıkışsız düğüme yeniden bağlar; böylece Step’ten sonra eklediğiniz iş yine çalışır.
Düğüm ekleme
Bölüm başlığı “Düğüm ekleme”Düğüm kitaplığı kenar çubuğu düzenleyicinin solunda kalıcı olarak durur. Onu Düğüm ara kutusuyla filtreleyin ve bir girdiyi tuvale sürükleyin — düğüm, bıraktığınız yere ve hiçbir gelen bağlantısı olmadan yerleşir.
| Palet düğümü | Adım türü | Ne yapar |
|---|---|---|
| Bash betiği | listen | Bir kabuk betiğini {{state}} yerine koyarak çalıştırır; hiçbir ajan gönderilmez |
| Konuşma aç | listen | Çalıştırmanın tek görünür alanını ve onun checkout’unu açar; ajan düğümleri bu odaya katılır |
| PR dalını klonla | listen | PR baş dalını gh pr view ile bulur ve çalıştırma dizinine klonlar |
| PR yorumu gönder | listen | Birleştirilmiş bulguları PR’a GitHub inceleme yorumu olarak gönderir |
| İnceleyici (prompt) | listen | Uzman bir inceleyici ajanı gönderir; ajan sonucunu gönderene kadar askıda kalır |
| Birleştir (join) | join | Birkaç üst dalı bekler, ardından bir ajandan çıktılarını birleştirmesini ister |
| Özel prompt | listen | promptAgent gövdesi üzerinden yönlendirilen, prompt güdümlü genel düğüm |
| Alana gönder | listen | Bir mesajlaşma alanına ileti gönderir |
| Koşul / switch (router) | router | Akışı bir durum değerine göre dallandırır |
| Dosya varsa (router) | router | Klon altında bir yol varsa "true", yoksa "false" yönlendirir |
| Herhangi bir dosya varsa (VEYA router) | router | Listelenen yollardan herhangi biri varsa "true" yönlendirir |
| Tüm koşullar (VE router) | router | Yalnızca listelenen her yol varsa "true" yönlendirir |
| Takım gönderimi | listen | Bütün bir takımı gönderir ve takım bitene kadar askıda kalır |
| Onay kapısı | listen | Bir onay kararı için duraklar |
| Her öğe için (map) | forEach | Her öğe için bir prompt oluşturur, ardından ajanı bu promptlar birleştirilmiş halde bir kez gönderir |
| Alt pipeline çağır | listen | Başka bir şablonu iç içe adım olarak çalıştırır |
| Çalışma ağaçlarını temizle | listen | Bayat yalıtılmış çalışma ağaçlarını kaldırır; deterministiktir, ajan gönderilmez |
Kitaplık bunları Akış ve mantık, PR incelemesi, Ajanlar, Mesajlaşma ve Kod başlıkları altında gruplar. Demo grubu yoktur.
Düğümleri birbirine bağlama
Bölüm başlığı “Düğümleri birbirine bağlama”Her iş düğümünün sağ kenarında yuvarlak bir çıktı bağlantı noktası vardır.
Bağlamak için o noktadan başka bir düğüme sürükleyin. Başlatma tetikleyicileri
de aynıdır: her biri kendi bağlantı noktasına sahiptir, dolayısıyla
Zamanlama’dan gelen bir kablo Elle çalıştırma’dan da çıkmaz. Bir düğümün
hemen ardına bir tür eklemek için Adım ekle’ye (+) basın. Mevcut bir
kenarın orta noktasının üzerine gelin ve bağlantıyı kesmek için × işaretine
basın.
Bağlantılar, bunları alan düğümden de düzenlenir:
- Alt düğümü seçin. Yapılandırma paneli sağda açılır.
- Gelen tetikleyiciler bölümüne kaydırın ve bu düğümün dinlemesi gereken her üst düğümün çipine dokunun. Seçili bir çipe yeniden dokunmak bağlantıyı kaldırır.
- Bir üst düğüm router ise, çiplerin altında her router kenarı için bir
<node> kaynağından rota anahtarı alanı bulunan bir Rota
anahtarları bloğu görünür. O kenarın tetiklendiği anahtarı girin — dosya
varlığı router’ları için
trueveyafalse, bir switch içinse durum adı.
Her tetikleyici düğüm bir giriş noktasıdır. Bir düğüm birkaç üst düğümü dinleyebilir (fan-in) ve birkaç alt düğümü besleyebilir (fan-out); grafik döngüsüz kalmalıdır — düzenleyicide sizi bir döngü bağlamaktan alıkoyan hiçbir şey yoktur, bu yüzden işinizi kontrol edin.
Terminal nöbetçisi tuvalden filtrelenir, bu yüzden seçilemez. Düzenleyici, grafik her değiştiğinde onu ulaşılabilir her çıkışsız düğüme yeniden bağlar; böylece tohumlanmış Step’ten sonra eklediğiniz iş yine çalışır. Boş bir grafik (ardılı iş olmayan bir tetikleyici) tetikleyicinin kendisini listeler, böylece çalıştırma hemen tamamlanır.
Düğüm yapılandırma
Bölüm başlığı “Düğüm yapılandırma”Yapılandırma panelini açmak için bir düğüm seçin. Hangi alanların görüneceği düğümün gövdesine bağlıdır.
Her düğümde Etiket, Girdi anahtarları (yürütme anında okunan virgülle ayrılmış durum anahtarları) ve Gelişmiş altında Reducer, Zaman aşımı (ms), Yeniden deneme sayısı, Bu adım başarısız olsa da devam et ve Çıktı şeması bulunur. Listen ve join düğümleri ayrıca Tür’lerini bu ikisi arasında değiştirebilir.
Konuşma aç
Bölüm başlığı “Konuşma aç”Bir depo kapsamı seçici (çalışma alanının hangi depolarının checkout edileceği; boş, hiçbiri anlamına gelir), bir Alan adı ve bir İçinde bir konuşma aç onay kutusu ekler. Bu onay kutusu açıkken bir Konuşma adı alanı, odanın açıldığı akışa ad verir. Ajan düğümleri bu odaya katılır — kendileri bir oda açmaz.
Prompt ajanı
Bölüm başlığı “Prompt ajanı”Ajan (hangi ajanın gönderileceği), Prompt (girdilere veya üst adım
çıktılarına başvurmak için {{key}} kullanın) ve Çıktı anahtarı ekler.
Zaman aşımı (ms) saniye değil, milisaniye cinsindendir — 900000 15
dakikadır. 900 girmek adıma 0,9 saniye verir.
Bir prompt ajanı düğümünün altında çalıştığı konuşma modunun ajan düğümünde
hiçbir düzenleyici alanı yoktur. Bu mod, odayı oluşturan Konuşma aç
düğümündeki extras['mode'] (chat, plan veya review) üzerinden taşınır
(varsayılan review). Bunu bir ajan adımında ayarlamak yok sayılır. Anahtar tam
olarak eşleştirilir: başka her yazım sessizce yok sayılır.
Bash betiği
Bölüm başlığı “Bash betiği”Betik ekler. Ne çalışma dizini ne de ortam alanı vardır, çünkü ikisi de yapılandırılamaz:
- Bir çalıştırmadaki her bash adımı aynı cwd’yi paylaşır:
<cc_root>/pipelines/<runId>/. GITHUB_TOKEN, kimlik bilgisi deposundan enjekte edilir; böyleceghvegit clone https://x-access-token:$GITHUB_TOKEN@…ek bir kurulum olmadan çalışır.- Betik, birebir
bashyürütülebilir dosyası olarak başlatılır; bu yüzdenbash, sunucu ana makinesininPATH’inde olmalıdır. Bu, Windows’a özgü bir husustur.
Router
Bölüm başlığı “Router”Router bir koşulu değerlendirir ve bir rota anahtarı döndürür; motor yalnızca rota anahtarı eşleşen alt kenarı tetikler ve diğer dalları atlandı olarak işaretler.
Bir router seçmek, Çıktı anahtarı alanının yerine koşul düzenleyicisini koyar. Dört modundan birini seçin:
- Dosya(lar) var — herhangi biri — listelenen yollardan herhangi biri varsa
"true"yönlendirir. - Dosyalar var — tümü — yalnızca listelenen her yol varsa
"true"yönlendirir. - Karşılaştırma — bir durum değerini bir sabitle karşılaştırır.
- Switch — varsayılan bir durumla birlikte bir durum anahtarının değerine göre yönlendirir.
Ardından, giden kenarlarda eşleşen rota anahtarlarını ayarlayın (bkz. Düğümleri birbirine bağlama).
Boolean and / or / not grupları gövde tarafından desteklenir, ancak bu
formdan yazılamaz — extras.predicate altında elle yazılmış bir yüklem ağacı
gerektirirler. Yüklem ve operatör sözlüğünün tamamı
pipeline adımları referansında
bulunur.
Kendine ait bir yapılandırması yoktur: tüm üst adımlarını bekler.
Onay kapısı
Bölüm başlığı “Onay kapısı”Kapı, onaylayıcı ajanı kapı prompt’uyla gizli bir konuşmaya gönderir ve askıda
kalır. Onaylayıcı, konuşmada kararınızı ister ve bunu submit_output ile
{ "decision": "approved" | "rejected", "reason": "..." } biçiminde gönderir.
Karar, çıktı anahtarının altına düşer (varsayılan approval_decision), böylece
alt taraftaki bir switch router buna göre dallanabilir.
Ajan alanını onaylayıcıya, Prompt alanını da kapı sorusuna ayarlayın.
Kapı, submit_output üzerinden { "decision": "approved" | "rejected", "reason": "..." } biçiminde sonuçlanır. İnceleyici (prompt) düğümleri de aynı
şekilde gönderir.
Takım gönderimi
Bölüm başlığı “Takım gönderimi”Takım kimliği ve Gönderim kipi ekler. Seçici tam olarak iki kip sunar:
allParallel— üye başına bir görev; tümü tamamlanana kadar askıda kalır.manager— lideri gönderir; lider de işi devreder.
Saklanan başka herhangi bir değer allParallel gibi davranır. Her üyenin
sonucunu çıktı anahtarı altında bir listede toplamak için Reducer’ı append
yapın.
Her öğe için ve alt pipeline çağırma
Bölüm başlığı “Her öğe için ve alt pipeline çağırma”Her öğe için, varsayılan olarak items durum anahtarı üzerinde eşler
(düğümde extras.iterableKey / extras.itemKey). Prompt’unu her öğe için bir
kez oluşturur (varsayılan olarak {{item}}) ve ajanı, bu promptlar
birleştirilmiş halde bir kez gönderir. Boş bir koleksiyon hemen boş bir
listeyle tamamlanır. Öğe başına bir paralel gönderim değildir.
Alt pipeline çağır, alt çalıştırma terminal bir duruma ulaşana kadar askıda
kalır, ardından alt çalıştırmanın son durumunu çıktı anahtarı altında birleştirir
(varsayılan subflow_result). Onu extras.templateId ile bir alt şablona
yöneltin. Bir şablon kendini çağıramaz; başarısız olan veya iptal edilen bir alt
çalıştırma üst adımı başarısız kılar, bu da o adımın yeniden deneme ve
başarısızlıkta devam politikasını besler.
Girdileri bildirme ve elle çalıştırmalara izin verme
Bölüm başlığı “Girdileri bildirme ve elle çalıştırmalara izin verme”İkisi de düzenleyicinin üst bilgisindeki Manuel çalıştırma’nın arkasındadır.
- Manuel çalıştırma’ya basın.
- Manuel çalıştırmaya izin ver anahtarını açın. Bu anahtar hemen kalıcı olur
— şablonun çalıştırma başlatıcısında görünmesini sağlayan
manualtetikleyici satırını oluşturur (veya siler). - Bir üst sınır istiyorsanız Maks. paralel çalıştırma değerini ayarlayın
(sınırsız için boş bırakın). Fazladan başlatmalar, bir yer boşalana kadar
queueddurumunda bekler. - Elle bir çalıştırmanın toplaması gereken her form alanı için Girdi ekle’ye basın:
| Alan | Açıklama |
|---|---|
| Anahtar | Değerin saklandığı durum anahtarı; ona {{key}} ile başvurun |
| Etiket | Görünen etiket (varsayılan olarak anahtar) |
| Tür | Metin, Çok satırlı metin, Sayı, Geçiş, Seçim, Repository |
| Seçenekler | Virgülle ayrılmış seçenekler; yalnızca Seçim için |
| Varsayılan değer | Önceden doldurulmuş değer |
| Yer tutucu | Boş alanın içindeki ipucu metni |
| Yardım metni | Alanın altındaki yardımcı metin |
| Zorunlu | Çalıştırma formunun boş bir değerde engelleyip engellemeyeceği |
Bir Repository girdisi, çalışma alanının depoları üzerinde bir seçici
oluşturur ve repo_id, repo_local_path, repo_full_name ile — deponun bir
GitHub uzak deposu varsa — repo_owner ve repo_name değerlerini çalıştırma
yüküne doldurur.
- İletişim kutusunda Kaydet’e basın. Girdi düzenlemeleri taslağa katılır; şablonu kaydettiğinizde kalıcı olur.
Kaydetme ve etkinleştirme
Bölüm başlığı “Kaydetme ve etkinleştirme”- Düzenleyicinin üst bilgisinde Kaydet’e basın. Siz bunu yapana kadar üst bilgide “Kaydedilmemiş değişiklikler” yazar.
- Ayarlar → Çalışma alanı → Pipeline şablonları sayfasına dönün ve şablonun satırındaki anahtarın açık olduğunu kontrol edin. Motor, devre dışı bir şablonu başlatmayı reddeder ve devre dışı bir şablon çalıştırma başlatıcısında asla görünmez.
- Otomatik başlatmak için düğüm kitaplığından bir tetikleyiciyi tuvale sürükleyin — bkz. Pipeline tetikleyicilerini kurma.
İlgili kılavuzlar
Bölüm başlığı “İlgili kılavuzlar”- Bir pipeline’ı elle çalıştırma
- Pipeline tetikleyicilerini kurma
- Pipeline çalıştırmalarını izleme
- Pipeline adımları referansı