Μετάβαση στο περιεχόμενο

Δημιουργία προτύπου pipeline

Τα πρότυπα pipeline συντάσσονται στις ρυθμίσεις του χώρου εργασίας. Η καταχώριση Pipelines στην πλαϊνή στήλη του χώρου εργασίας είναι η ουρά εκτελέσεων, όχι η λίστα προτύπων — δεν έχει ενέργεια «δημιουργία προτύπου».

Για το τι σημαίνει κάθε είδος βήματος, κλειδί body και πεδίο διαμόρφωσης, δείτε την αναφορά βημάτων pipeline.

  1. Μεταβείτε στις Ρυθμίσεις → Χώρος εργασίας → Πρότυπα pipeline (/workspaces/<workspace-id>/settings/pipelines).
  2. Πατήστε Νέο πρότυπο.

Δεν υπάρχει παράθυρο διαλόγου για το id. Ο επεξεργαστής ανοίγει αμέσως σε έναν προπαρασκευασμένο σκελετό με όνομα Νέο pipeline, με αυτόματα εκχωρημένο id (pipeline_1, μετά pipeline_2, …). Κάντε κλικ στον τίτλο στην κεφαλίδα για να τον μετονομάσετε.

Ο καμβάς δεν είναι κενός: ένας κόμβος εισόδου Trigger, ένας κόμβος πράκτορα προτροπής με ετικέτα Step και ένας τερματικός αισθητήρας που τερματίζει την εκτέλεση. Ο αισθητήρας δεν σχεδιάζεται. Ο επεξεργαστής επανασυνδέει αυτό το κρυφό τερματικό σε κάθε προσβάσιμη κατάληξη, ώστε η εργασία που συνδέετε μετά το Step να εκτελείται κανονικά.

Η πλαϊνή στήλη Βιβλιοθήκη κόμβων βρίσκεται μόνιμα στα αριστερά του επεξεργαστή. Φιλτράρετέ την με το πλαίσιο Αναζήτηση κόμβων και σύρετε μια καταχώριση στον καμβά — ο κόμβος προσγειώνεται εκεί που τον αφήνετε, χωρίς εισερχόμενη σύνδεση.

Κόμβος παλέτας Είδος βήματος Τι κάνει
Bash script listen Εκτελεί ένα σενάριο κελύφους με αντικατάσταση {{state}}· δεν αποστέλλεται πράκτορας
Open conversation listen Ανοίγει τον έναν ορατό χώρο της εκτέλεσης και το checkout του· οι κόμβοι πρακτόρων συμμετέχουν σε αυτόν τον χώρο
Clone PR branch listen Εντοπίζει τον head branch του PR μέσω gh pr view και τον κλωνοποιεί στον κατάλογο εκτέλεσης
Post PR comment listen Δημοσιεύει τα ενοποιημένα ευρήματα στο PR ως σχόλιο ελέγχου GitHub
Reviewer (prompt) listen Αποστέλλει έναν εξειδικευμένο πράκτορα ελέγχου· αναστέλλεται μέχρι ο πράκτορας να υποβάλει το αποτέλεσμά του
Consolidate (join) join Περιμένει πολλούς ανάντη κλάδους και μετά ζητά από έναν πράκτορα να ενοποιήσει τις εξόδους τους
Custom prompt listen Γενικός κόμβος καθοδηγούμενος από προτροπή, που δρομολογείται μέσω του body promptAgent
Post to space listen Στέλνει μήνυμα σε έναν χώρο μηνυμάτων
Condition / switch (router) router Διακλαδώνει τη ροή με βάση μια τιμή κατάστασης
If file exists (router) router Δρομολογεί "true" όταν υπάρχει μια διαδρομή κάτω από το κλωνάρι, αλλιώς "false"
Any file exists (OR router) router Δρομολογεί "true" όταν υπάρχει οποιαδήποτε από τις καταγεγραμμένες διαδρομές
All conditions (AND router) router Δρομολογεί "true" μόνο όταν υπάρχουν όλες οι καταγεγραμμένες διαδρομές
Team dispatch listen Αποστέλλει ολόκληρη ομάδα και αναστέλλεται μέχρι να ολοκληρωθεί
Approval gate listen Παύει για μια απόφαση έγκρισης
For each (map) forEach Αποδίδει μια προτροπή ανά στοιχείο και μετά αποστέλλει τον πράκτορα μία φορά με αυτές τις προτροπές ενωμένες
Call sub-pipeline listen Εκτελεί άλλο πρότυπο ως ένθετο βήμα
Clean up worktrees listen Αφαιρεί παρωχημένα απομονωμένα worktrees· ντετερμινιστικό, δεν αποστέλλεται πράκτορας

Η βιβλιοθήκη τα ομαδοποιεί στις κατηγορίες Ροή και λογική, Ανασκόπηση PR, Πράκτορες, Μηνύματα και Κώδικας. Δεν υπάρχει κατηγορία Demo.

Κάθε κόμβος εργασίας έχει μια κυκλική θύρα εξόδου στη δεξιά του πλευρά. Σύρετε από αυτή τη θύρα σε άλλον κόμβο για να τους συνδέσετε. Τα εναύσματα έναρξης λειτουργούν το ίδιο: το καθένα έχει τη δική του θύρα, ώστε ένα καλώδιο από το Χρονοδιάγραμμα να μην ξεκινά και από τη Χειροκίνητη εκτέλεση. Πατήστε Προσθήκη βήματος (+) ακριβώς μετά από έναν κόμβο για να εισαγάγετε έναν τύπο μετά από αυτόν. Τοποθετήστε τον δείκτη στο μέσο μιας υπάρχουσας ακμής και πατήστε × για να την αποσυνδέσετε.

Οι συνδέσεις επεξεργάζονται και από τον κόμβο που τις δέχεται:

  1. Επιλέξτε τον κατάντη κόμβο. Το πλαίσιο διαμόρφωσής του ανοίγει στα δεξιά.
  2. Μετακινηθείτε στο Εναύσματα από και πατήστε το τσιπ για κάθε ανάντη κόμβο στον οποίο θέλετε να ακούει αυτός. Το πάτημα σε επιλεγμένο τσιπ αφαιρεί τη σύνδεση.
  3. Αν ένας ανάντη κόμβος είναι δρομολογητής, κάτω από τα τσιπ εμφανίζεται ένα τμήμα Κλειδιά δρομολόγησης με ένα πεδίο Κλειδί δρομολόγησης από <node> ανά ακμή δρομολογητή. Εισαγάγετε το κλειδί στο οποίο πυροδοτείται αυτή η ακμή — true ή false για τους δρομολογητές ύπαρξης αρχείου, ή το όνομα της περίπτωσης για έναν διακόπτη.

Κάθε κόμβος εναύσματος είναι σημείο εισόδου. Ένας κόμβος μπορεί να ακούει σε πολλούς ανάντη (fan-in) και να τροφοδοτεί πολλούς κατάντη (fan-out) και το γράφημα πρέπει να παραμένει άκυκλο — τίποτα στον επεξεργαστή δεν σας εμποδίζει να συνδέσετε κύκλο, οπότε ελέγξτε τη δουλειά σας.

Ο τερματικός αισθητήρας φιλτράρεται έξω από τον καμβά, οπότε δεν μπορεί να επιλεγεί. Ο επεξεργαστής τον επανασυνδέει σε κάθε προσβάσιμη κατάληξη κάθε φορά που αλλάζει το γράφημα, ώστε η εργασία που συνδέετε μετά το προπαρασκευασμένο Step να εκτελείται κανονικά. Ένα κενό γράφημα (έναυσμα χωρίς διαδόχους εργασίας) καταγράφει το ίδιο το έναυσμα, ώστε μια εκτέλεση να ολοκληρώνεται αμέσως.

Επιλέξτε έναν κόμβο για να ανοίξει το πλαίσιο διαμόρφωσής του. Ποια πεδία εμφανίζονται εξαρτάται από το body του κόμβου.

Κάθε κόμβος έχει Ετικέτα, Κλειδιά εισόδου (κλειδιά κατάστασης χωρισμένα με κόμμα, που διαβάζονται κατά την εκτέλεση) και, κάτω από το Για προχωρημένους, τα Reducer, Χρονικό όριο (ms), Προσπάθειες επανάληψης, Συνέχεια σε αποτυχία και Σχήμα εξόδου. Οι κόμβοι listen και join μπορούν επίσης να αλλάξουν το Είδος τους μεταξύ των δύο.

Προσθέτει έναν επιλογέα εύρους αποθετηρίων (ποια αποθετήρια του χώρου εργασίας θα γίνουν checkout· κενό σημαίνει κανένα), ένα Όνομα χώρου και ένα πλαίσιο επιλογής Δημιουργία συνομιλίας. Όταν το πλαίσιο είναι επιλεγμένο, ένα πεδίο Τίτλος συνομιλίας ονομάζει τη ροή με την οποία ανοίγει ο χώρος. Οι κόμβοι πρακτόρων συμμετέχουν σε αυτόν τον χώρο — δεν ανοίγουν δικό τους.

Προσθέτει το Πράκτορας (ποιον πράκτορα θα αποστείλει), την Προτροπή (χρησιμοποιήστε {{key}} για να αναφερθείτε σε εισόδους ή εξόδους ανάντη κόμβων) και το Κλειδί εξόδου.

Το Χρονικό όριο (ms) είναι σε χιλιοστά του δευτερολέπτου, όχι σε δευτερόλεπτα — το 900000 είναι 15 λεπτά. Η εισαγωγή 900 δίνει στο βήμα 0,9 δευτερόλεπτα.

Η λειτουργία συνομιλίας υπό την οποία εκτελείται ένας κόμβος πράκτορα προτροπής δεν έχει πεδίο στον επεξεργαστή για τον κόμβο πράκτορα. Μεταφέρεται στο extras['mode'] (chat, plan ή review) στον κόμβο Open conversation που δημιούργησε τον χώρο (προεπιλογή review). Ο ορισμός της σε βήμα πράκτορα αγνοείται. Το κλειδί αντιστοιχίζεται ακριβώς: κάθε άλλη γραφή αγνοείται σιωπηλά.

Προσθέτει το Σενάριο. Δεν υπάρχουν πεδία καταλόγου εργασίας ή περιβάλλοντος, γιατί κανένα από τα δύο δεν είναι παραμετροποιήσιμο:

  • Κάθε βήμα bash σε μια εκτέλεση μοιράζεται το cwd <cc_root>/pipelines/<runId>/.
  • Το GITHUB_TOKEN εγχέεται από την αποθήκη διαπιστευτηρίων, ώστε τα gh και git clone https://x-access-token:$GITHUB_TOKEN@… να λειτουργούν χωρίς ρύθμιση.
  • Το σενάριο εκκινείται ως το κυριολεκτικό εκτελέσιμο bash, οπότε το bash πρέπει να βρίσκεται στο PATH του κεντρικού υπολογιστή του διακομιστή. Αυτό είναι ένα ζήτημα στα Windows.

Ένας δρομολογητής αξιολογεί μια συνθήκη και επιστρέφει ένα κλειδί δρομολόγησης· η μηχανή πυροδοτεί μόνο την κατάντη ακμή της οποίας το κλειδί δρομολόγησης ταιριάζει και σημειώνει τους άλλους κλάδους ως παραλειφθέντες.

Η επιλογή ενός δρομολογητή αντικαθιστά το πεδίο Κλειδί εξόδου με τον επεξεργαστή συνθηκών. Διαλέξτε μία από τις τέσσερις λειτουργίες του:

  • Υπάρχει αρχείο(-α) — οποιοδήποτε — δρομολογεί "true" όταν υπάρχει οποιαδήποτε καταγεγραμμένη διαδρομή.
  • Υπάρχουν αρχεία — όλα — δρομολογεί "true" μόνο όταν υπάρχουν όλες οι καταγεγραμμένες διαδρομές.
  • Σύγκριση — συγκρίνει μια τιμή κατάστασης με ένα κυριολεκτικό.
  • Διακόπτης — δρομολογεί με βάση την τιμή ενός κλειδιού κατάστασης, με μια προεπιλεγμένη περίπτωση.

Έπειτα ορίστε τα αντίστοιχα κλειδιά δρομολόγησης στις εξερχόμενες ακμές (δείτε Σύνδεση κόμβων μεταξύ τους).

Οι ομάδες boolean and / or / not υποστηρίζονται από το body αλλά δεν μπορούν να συνταχθούν από αυτή τη φόρμα — χρειάζονται ένα χειροποίητο δέντρο κατηγορημάτων στο extras.predicate. Το πλήρες λεξιλόγιο κατηγορημάτων και τελεστών βρίσκεται στην αναφορά βημάτων pipeline.

Δεν έχει δική του διαμόρφωση: περιμένει όλα τα ανάντη βήματά του.

Η πύλη αποστέλλει τον πράκτορα έγκρισης σε μια κρυφή συνομιλία με την προτροπή της πύλης και αναστέλλεται. Ο εγκρίνων ζητά την απόφασή σας στη συνομιλία και την υποβάλλει με το submit_output ως { "decision": "approved" | "rejected", "reason": "..." }. Η απόφαση καταλήγει στο κλειδί εξόδου (προεπιλογή approval_decision), ώστε ένας κατάντη δρομολογητής διακόπτη να μπορεί να διακλαδωθεί με βάση αυτή.

Ορίστε το Πράκτορας στον εγκρίνοντα και την Προτροπή στην ερώτηση της πύλης. Η πύλη επιλύεται μέσω submit_output ως { "decision": "approved" | "rejected", "reason": "..." }. Οι κόμβοι Reviewer (prompt) υποβάλλουν με τον ίδιο τρόπο.

Προσθέτει το ID ομάδας και τη Λειτουργία αποστολής. Ο επιλογέας προσφέρει ακριβώς δύο λειτουργίες:

  • allParallel — μία εργασία ανά μέλος, αναστέλλεται μέχρι να ολοκληρωθούν όλα.
  • manager — αποστέλλει τον ηγέτη, ο οποίος αναθέτει.

Οποιαδήποτε άλλη αποθηκευμένη τιμή συμπεριφέρεται ως allParallel. Ορίστε το Reducer σε append για να συλλέξετε το αποτέλεσμα κάθε μέλους σε μια λίστα κάτω από το κλειδί εξόδου.

Το For each αντιστοιχίζει προεπιλεγμένα πάνω στο κλειδί κατάστασης items (extras.iterableKey / extras.itemKey στον κόμβο). Αποδίδει την προτροπή του μία φορά ανά στοιχείο ({{item}} προεπιλεγμένα) και αποστέλλει τον πράκτορα μία φορά με αυτές τις προτροπές συνενωμένες. Μια κενή συλλογή ολοκληρώνεται αμέσως με κενή λίστα. Δεν είναι μία παράλληλη αποστολή ανά στοιχείο.

Το Call sub-pipeline αναστέλλεται μέχρι η θυγατρική εκτέλεση να φτάσει σε τερματική κατάσταση και μετά συγχωνεύει την τελική κατάσταση του παιδιού κάτω από το κλειδί εξόδου (προεπιλογή subflow_result). Στοχεύστε σε ένα παιδί με το extras.templateId. Ένα πρότυπο δεν μπορεί να καλέσει τον εαυτό του· ένα αποτυχημένο ή ακυρωμένο παιδί αποτυγχάνει το γονικό βήμα, το οποίο μετά τροφοδοτεί την πολιτική επανάληψης και συνέχειας-σε-αποτυχία αυτού του βήματος.

Δήλωση εισόδων και χειροκίνητες εκτελέσεις

Ενότητα με τίτλο «Δήλωση εισόδων και χειροκίνητες εκτελέσεις»

Και τα δύο βρίσκονται πίσω από το Χειροκίνητη εκτέλεση στην κεφαλίδα του επεξεργαστή.

  1. Πατήστε Χειροκίνητη εκτέλεση.
  2. Ενεργοποιήστε το Να επιτρέπεται χειροκίνητη εκτέλεση. Αυτός ο διακόπτης αποθηκεύεται αμέσως — δημιουργεί (ή διαγράφει) τη γραμμή εναύσματος manual που κάνει το πρότυπο να εμφανίζεται στον εκκινητή εκτελέσεων.
  3. Ορίστε τις Μέγιστες παράλληλες εκτελέσεις αν θέλετε όριο (αφήστε κενό για απεριόριστο). Οι επιπλέον εκκινήσεις περιμένουν σε κατάσταση queued μέχρι να ελευθερωθεί θέση.
  4. Πατήστε Προσθήκη εισόδου για κάθε πεδίο φόρμας που πρέπει να συλλέγει μια χειροκίνητη εκτέλεση:
Πεδίο Περιγραφή
Κλειδί Κλειδί κατάστασης κάτω από το οποίο αποθηκεύεται η τιμή· ανατρέξτε σε αυτό ως {{key}}
Ετικέτα Ετικέτα εμφάνισης (προεπιλογή είναι το κλειδί)
Τύπος Κείμενο, Κείμενο πολλών γραμμών, Αριθμός, Διακόπτης, Επιλογή, Αποθετήριο
Επιλογές Επιλογές χωρισμένες με κόμμα, μόνο για την Επιλογή
Προεπιλεγμένη τιμή Προσυμπληρωμένη τιμή
Υπόδειξη Κείμενο υπόδειξης μέσα στο κενό πεδίο
Κείμενο βοήθειας Κείμενο βοήθειας κάτω από το πεδίο
Υποχρεωτικό Αν η φόρμα εκτέλεσης μπλοκάρει σε κενή τιμή

Μια είσοδος Αποθετήριο αποδίδει έναν επιλογέα πάνω από τα αποθετήρια του χώρου εργασίας και συμπληρώνει τα repo_id, repo_local_path, repo_full_name και — όταν το αποθετήριο έχει απομακρυσμένο GitHub — τα repo_owner και repo_name στο ωφέλιμο φορτίο της εκτέλεσης.

  1. Πατήστε Αποθήκευση στο παράθυρο διαλόγου. Οι αλλαγές στις εισόδους ενσωματώνονται στο προσχέδιο· παραμένουν όταν αποθηκεύσετε το πρότυπο.
  1. Πατήστε Αποθήκευση στην κεφαλίδα του επεξεργαστή. Η κεφαλίδα εμφανίζει «Μη αποθηκευμένες αλλαγές» μέχρι να το κάνετε.
  2. Επιστρέψτε στις Ρυθμίσεις → Χώρος εργασίας → Πρότυπα pipeline και ελέγξτε ότι ο διακόπτης της γραμμής του προτύπου είναι ενεργός. Η μηχανή αρνείται να ξεκινήσει ένα απενεργοποιημένο πρότυπο και ένα απενεργοποιημένο πρότυπο δεν εμφανίζεται ποτέ στον εκκινητή εκτελέσεων.
  3. Για να ξεκινά αυτόματα, σύρετε ένα έναυσμα από τη βιβλιοθήκη κόμβων στον καμβά — δείτε Ρύθμιση ενεργοποιητών pipeline.