YAMLDefinizione del workflow - Amazon CodeCatalyst

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

YAMLDefinizione del workflow

Di seguito è riportata la documentazione di riferimento per il file di definizione del flusso di lavoro.

Un file di definizione del flusso di lavoro è un YAML file che descrive il flusso di lavoro. Per impostazione predefinita, il file viene archiviato in una ~/.codecatalyst/workflows/ cartella nella radice del repository di origine. Il file può avere un'estensione .yml o .yaml e l'estensione deve essere minuscola.

Per creare e modificare il file di definizione del flusso di lavoro, è possibile utilizzare un editor come vim oppure l'editor visuale o l'editor della console. CodeCatalyst YAML Per ulteriori informazioni, consulta Utilizzo della visualizzazione e degli YAML editor della CodeCatalyst console.

Nota

La maggior parte delle YAML proprietà che seguono hanno elementi dell'interfaccia utente corrispondenti nell'editor visivo. Per cercare un elemento dell'interfaccia utente, usa Ctrl+F. L'elemento verrà elencato con la proprietà associata. YAML

Esempio di file di definizione del flusso di lavoro

Di seguito è riportato un esempio di un semplice file di definizione del flusso di lavoro. Include alcune proprietà di primo livello, una Triggers sezione e una Actions sezione con due azioni: Build eTest. Per ulteriori informazioni, consulta Informazioni sul file di definizione del flusso di lavoro.

Name: MyWorkflow SchemaVersion: 1.0 RunMode: QUEUED Triggers: - Type: PUSH Branches: - main Actions: Build: Identifier: aws/build@v1 Inputs: Sources: - WorkflowSource Configuration: Steps: - Run: docker build -t MyApp:latest . Test: Identifier: aws/managed-test@v1 DependsOn: - Build Inputs: Sources: - WorkflowSource Configuration: Steps: - Run: npm install - Run: npm run test

Linee guida e convenzioni sulla sintassi

Questa sezione descrive le regole di sintassi per il file di definizione del flusso di lavoro, nonché le convenzioni di denominazione utilizzate in questa documentazione di riferimento.

YAMLlinee guida sulla sintassi

Il file di definizione del flusso di lavoro è scritto YAML e segue la specifica YAML 1.1, quindi tutto ciò che è consentito in tale specifica è consentito anche nel flusso di lavoroYAML. Se sei un principianteYAML, ecco alcune linee guida rapide per assicurarti di fornire YAML codice valido.

  • Distinzione tra maiuscole e minuscole: il file di definizione del flusso di lavoro fa distinzione tra maiuscole e minuscole, quindi assicurati di utilizzare la distinzione tra maiuscole e minuscole mostrata in questa documentazione.

  • Caratteri speciali: si consiglia di utilizzare virgolette o virgolette doppie attorno ai valori delle proprietà che includono uno dei seguenti caratteri speciali: {},[,],,,,*,#, < ?|, >-,,,,, = e ! % @ : ` ,

    Se non includi le virgolette, i caratteri speciali elencati in precedenza potrebbero essere interpretati in modo inaspettato.

  • Nomi di proprietà: i nomi delle proprietà (al contrario dei valori delle proprietà) sono limitati ai caratteri alfanumerici (a-z, A-Z, 0-9), ai trattini (-) e ai caratteri di sottolineatura (_). Gli spazi non sono consentiti. Non è possibile utilizzare virgolette o virgolette doppie per abilitare caratteri e spazi speciali nei nomi delle proprietà.

    Non consentito:

    'My#Build@action'

    My#Build@action

    My Build Action

    Autorizzato:

    My-Build-Action_1

  • Codici di escape: se il valore della proprietà include codici di escape (ad esempio, \n o\t), segui queste linee guida:

    • Usa virgolette singole per restituire il codice di escape come stringa. Ad esempio'my string \n my string', restituisce la stringamy string \n my string.

    • Usa le virgolette doppie per analizzare il codice di escape. Ad esempio"my string \n my new line", restituisce:

      my string my new line
  • Commenti: prefigura i commenti con#.

    Esempio:

    Name: MyWorkflow # This is a comment. SchemaVersion: 1.0
  • Triple dash (---): non utilizzare --- nel codiceYAML. CodeCatalyst ignora tutto ciò che segue. ---

Convenzioni di denominazione

In questa guida, utilizziamo i termini proprietà e sezione per fare riferimento agli elementi principali di un file di definizione del flusso di lavoro.

  • Una proprietà è qualsiasi elemento che include i due punti (:). Ad esempio, nel seguente frammento di codice, tutte le seguenti sono proprietà:Name,,SchemaVersion, RunMode TriggersType, e. Branches

  • Una sezione è qualsiasi proprietà che presenta proprietà secondarie. Nel seguente frammento di codice, c'è una sezione. Triggers

    Nota

    In questa guida, le «sezioni» sono talvolta chiamate «proprietà» e viceversa, a seconda del contesto.

    Name: MyWorkflow SchemaVersion: 1.0 RunMode: QUEUED Triggers: - Type: PUSH Branches: - main

Proprietà di primo livello

Di seguito è riportata la documentazione di riferimento per le proprietà di primo livello nel file di definizione del flusso di lavoro.

# Name Name: workflow-name # Schema version SchemaVersion: 1.0 # Run mode RunMode: QUEUED|SUPERSEDED|PARALLEL # Compute Compute: ... # Triggers Triggers: ... # Actions Actions: ...

Name

(Obbligatorio)

Nome del flusso di lavoro. Il nome del flusso di lavoro viene visualizzato nell'elenco dei flussi di lavoro e menzionato nelle notifiche e nei registri. Il nome del flusso di lavoro e il nome del file di definizione del flusso di lavoro possono corrispondere oppure è possibile denominarli in modo diverso. I nomi dei flussi di lavoro non devono essere necessariamente univoci. I nomi dei flussi di lavoro sono limitati a caratteri alfanumerici (a-z, A-Z, 0-9), trattini (-) e caratteri di sottolineatura (_). Gli spazi non sono consentiti. Non è possibile utilizzare le virgolette per abilitare caratteri e spazi speciali nei nomi dei flussi di lavoro.

Interfaccia utente corrispondente: editor visivo/proprietà del workflow /nome del flusso di lavoro

SchemaVersion

(Obbligatorio)

La versione dello schema della definizione del flusso di lavoro. Attualmente, l'unico valore valido è 1.0.

Interfaccia utente corrispondente: nessuna

RunMode

(Facoltativo)

Come CodeCatalyst gestisce le esecuzioni multiple. È possibile utilizzare uno dei seguenti valori:

  • QUEUED— Le esecuzioni multiple vengono messe in coda ed eseguite una dopo l'altra. È possibile avere fino a 50 esecuzioni in coda.

  • SUPERSEDED— Le esecuzioni multiple vengono messe in coda ed eseguite una dopo l'altra. Una coda può avere una sola esecuzione, quindi se due esecuzioni finiscono insieme nella stessa coda, l'esecuzione successiva sostituisce (sostituisce) l'esecuzione precedente e l'esecuzione precedente viene annullata.

  • PARALLEL— Vengono eseguite più esecuzioni contemporaneamente.

Se questa proprietà viene omessa, l'impostazione predefinita èQUEUED.

Per ulteriori informazioni, consulta Configurazione del comportamento di accodamento delle esecuzioni.

Interfaccia utente corrispondente: modalità editor/Workflow properties/Advanced visuale/Run

Compute

(Facoltativo)

Il motore di calcolo utilizzato per eseguire le azioni del flusso di lavoro. È possibile specificare l'elaborazione a livello di flusso di lavoro o a livello di azione, ma non entrambi. Se specificata a livello di flusso di lavoro, la configurazione di calcolo si applica a tutte le azioni definite nel flusso di lavoro. A livello di flusso di lavoro, puoi anche eseguire più azioni sulla stessa istanza. Per ulteriori informazioni, consulta Condivisione dell'elaborazione tra le azioni.

Per ulteriori informazioni sull'elaborazione, consultaConfigurazione delle immagini di calcolo e di runtime.

Interfaccia utente corrispondente: nessuna

Name: MyWorkflow SchemaVersion: 1.0 ... Compute: Type: EC2 | Lambda Fleet: fleet-name SharedInstance: true | false

Type

(Compute/Type)

(Obbligatorio se Compute impostato)

Il tipo di motore di calcolo. È possibile utilizzare uno dei seguenti valori:

  • EC2(editor visivo) o EC2 (YAMLeditor)

    Ottimizzato per la flessibilità durante le sessioni di azione.

  • Lambda (editor visivo) o Lambda (YAMLeditor)

    Velocità di avvio dell'azione ottimizzate.

Per ulteriori informazioni sui tipi di calcolo, consulta Tipi di calcolo.

Interfaccia utente corrispondente: tipo editor/Workflow properties/Advanced visivo/di calcolo

Fleet

(Compute/Fleet)

(Facoltativo)

Specificate la macchina o il parco macchine che eseguiranno il flusso di lavoro o le azioni del flusso di lavoro. Con le flotte on-demand, all'avvio di un'azione, il flusso di lavoro fornisce le risorse necessarie e le macchine vengono distrutte al termine dell'azione. Esempi di flotte on-demand:,. Linux.x86-64.Large Linux.x86-64.XLarge Per ulteriori informazioni sulle flotte on-demand, vedere. Proprietà del parco veicoli su richiesta

Con le flotte assegnate, puoi configurare una serie di macchine dedicate per eseguire le azioni del flusso di lavoro. Queste macchine rimangono inattive, pronte a elaborare immediatamente le azioni. Per ulteriori informazioni sulle flotte rifornite, vedere. Proprietà del parco veicoli assegnate

Se Fleet viene omesso, l'impostazione predefinita è. Linux.x86-64.Large

Per ulteriori informazioni sulle flotte di elaborazione, consulta. Flotte di calcolo

Interfaccia utente corrispondente: visual editor/Workflow properties/Advanced /Compute fleet

SharedInstance

(Compute/SharedInstance)

(Facoltativo)

Specificate la capacità di condivisione del calcolo per le vostre azioni. Con la condivisione del calcolo, le azioni in un flusso di lavoro vengono eseguite sulla stessa istanza (immagine dell'ambiente di runtime). È possibile utilizzare uno dei seguenti valori:

  • TRUEsignifica che l'immagine dell'ambiente di runtime è condivisa tra le azioni del flusso di lavoro.

  • FALSEsignifica che viene avviata e utilizzata un'immagine di ambiente di runtime separata per ogni azione in un flusso di lavoro, quindi non è possibile condividere risorse come artefatti e variabili senza una configurazione aggiuntiva.

Per ulteriori informazioni sulla condivisione del calcolo, consulta. Condivisione dell'elaborazione tra le azioni

Interfaccia utente corrispondente: nessuna

Triggers

(Facoltativo)

Una sequenza di uno o più trigger per questo flusso di lavoro. Se non viene specificato un trigger, è necessario avviare manualmente il flusso di lavoro.

Per ulteriori informazioni sui trigger, consulta L'avvio di un flusso di lavoro viene eseguito automaticamente utilizzando i trigger.

Interfaccia utente corrispondente: editor visivo/diagramma del workflow /Triggers

Name: MyWorkflow SchemaVersion: 1.0 ... Triggers: - Type: PUSH Branches: - branch-name FilesChanged: - folder1/file - folder2/ - Type: PULLREQUEST Events: - OPEN - CLOSED - REVISION Branches: - branch-name FilesChanged: - file1.txt - Type: SCHEDULE # Run the workflow at 10:15 am (UTC+0) every Saturday Expression: "15 10 ? * 7 *" Branches: - branch-name

Type

(Triggers/Type)

(Obbligatorio se impostato) Triggers

Specificare il tipo di trigger. È possibile utilizzare uno dei seguenti valori:

  • Push (editor visivo) o PUSH (YAMLeditor)

    Un push trigger avvia l'esecuzione di un flusso di lavoro quando una modifica viene inviata all'archivio di origine. L'esecuzione del flusso di lavoro utilizzerà i file nel ramo in cui state inviando il push (ovvero il ramo di destinazione).

  • Pull request (editor visivo) o PULLREQUEST (YAMLeditor)

    Un trigger di pull request avvia un flusso di lavoro quando una pull request viene aperta, aggiornata o chiusa nel repository di origine. L'esecuzione del flusso di lavoro utilizzerà i file nel ramo da cui state estraendo (ovvero il ramo di origine).

  • Pianificazione (editor visivo) o SCHEDULE (YAMLeditor)

    Un trigger di pianificazione avvia l'esecuzione del flusso di lavoro in base a una pianificazione definita da un'espressione cron specificata dall'utente. Verrà avviato un flusso di lavoro separato per ogni ramo del repository di origine utilizzando i file del ramo. (Per limitare i rami su cui si attiva il trigger, usa il campo Branches (editor visivo) o la Branches proprietà (YAMLeditor).)

    Quando configuri un trigger di pianificazione, segui queste linee guida:

    • Utilizza solo un trigger di pianificazione per flusso di lavoro.

    • Se hai definito più flussi di lavoro nel tuo CodeCatalyst spazio, ti consigliamo di programmarne non più di 10 per avviarli contemporaneamente.

    • Assicurati di configurare l'espressione cron del trigger con un tempo adeguato tra le esecuzioni. Per ulteriori informazioni, consulta Expression.

Per alcuni esempi, consulta Esempi: trigger nei flussi di lavoro.

Interfaccia utente corrispondente: editor/workflow diagram/Triggers visuale/tipo di trigger

Events

(Triggers/Events)

(Richiesto se il trigger Type è impostato suPULLREQUEST)

Specificate il tipo di eventi di pull request che avvieranno l'esecuzione di un flusso di lavoro. Di seguito sono riportati i valori validi:

  • Viene creata una pull request (editor visuale) o OPEN (YAMLeditor)

    L'esecuzione del flusso di lavoro viene avviata quando viene creata una richiesta pull.

  • La pull request è chiusa (editor visivo) o CLOSED (YAMLeditor)

    L'esecuzione del flusso di lavoro viene avviata quando viene chiusa una pull request. Il comportamento dell'CLOSEDevento è complicato e può essere compreso meglio attraverso un esempio. Per ulteriori informazioni, consulta Esempio: un trigger con pull, branch e un evento 'CLOSED'.

  • Viene effettuata una nuova revisione per pull request (editor visuale) o REVISION (editor) YAML

    L'esecuzione del flusso di lavoro viene avviata quando viene creata una revisione di una pull request. La prima revisione viene creata quando viene creata la pull request. Dopodiché, viene creata una nuova revisione ogni volta che qualcuno invia un nuovo commit al ramo di origine specificato nella pull request. Se includi l'REVISIONevento nel trigger della pull request, puoi omettere l'OPENevento, poiché REVISION è un superset di. OPEN

È possibile specificare più eventi nello stesso trigger di pull request.

Per alcuni esempi, consulta Esempi: trigger nei flussi di lavoro.

Interfaccia utente corrispondente: visualeditor/workflow diagram/Triggers/Events for pull request

Branches

(Triggers/Branches)

(Facoltativo)

Specificate i rami nel vostro repository di origine monitorati dal trigger per sapere quando avviare l'esecuzione di un flusso di lavoro. È possibile utilizzare modelli regex per definire i nomi delle filiali. Ad esempio, utilizzare per main.* abbinare tutti i rami che iniziano conmain.

I rami da specificare sono diversi a seconda del tipo di trigger:

  • Per un trigger push, specifica i rami verso cui stai eseguendo il push, ovvero i rami di destinazione. Verrà avviata un'esecuzione del flusso di lavoro per ramo corrispondente, utilizzando i file nel ramo corrispondente.

    Esempi: main.*, mainline

  • Per un trigger di pull request, specifica i rami verso cui stai inviando il push, ovvero i rami di destinazione. Verrà avviata un'esecuzione del flusso di lavoro per ramo corrispondente, utilizzando il file di definizione del flusso di lavoro e i file di origine nel ramo di origine (non nel ramo corrispondente).

    Esempi:main.*,mainline, v1\-.* (corrisponde ai rami che iniziano con) v1-

  • Per un trigger di pianificazione, specifica i rami che contengono i file che desideri vengano utilizzati dall'esecuzione pianificata. Verrà avviata un'esecuzione del flusso di lavoro per ramo corrispondente, utilizzando il file di definizione del flusso di lavoro e i file sorgente nel ramo corrispondente.

    Esempi: main.*, version\-1\.0

Nota

Se non specifichi i rami, il trigger monitora tutti i rami nel tuo repository di origine e avvierà un flusso di lavoro eseguito utilizzando il file di definizione del flusso di lavoro e i file sorgente in:

Per ulteriori informazioni su rami e trigger, consulta. Linee guida per l'utilizzo di trigger e filiali

Per ulteriori esempi, consulta Esempi: trigger nei flussi di lavoro.

Interfaccia utente corrispondente: visualeditor/workflow diagram/Triggers/Branches

FilesChanged

(Triggers/FilesChanged)

(Facoltativo se il trigger Type è impostato suPUSH, oPULLREQUEST. Non supportato se il trigger Type è impostato suSCHEDULE.)

Specificate i file o le cartelle nell'archivio di origine monitorati dal trigger per sapere quando avviare l'esecuzione di un flusso di lavoro. È possibile utilizzare espressioni regolari per abbinare i nomi o i percorsi dei file.

Per alcuni esempi, consulta Esempi: trigger nei flussi di lavoro.

Interfaccia utente corrispondente: visualeditor/workflow diagram/Triggers/File modificati

Expression

(Triggers/Expression)

(Richiesto se il trigger Type è impostato suSCHEDULE)

Specificate l'espressione cron che descrive quando desiderate che avvenga l'esecuzione del flusso di lavoro pianificato.

Le espressioni Cron CodeCatalyst utilizzano la seguente sintassi a sei campi, in cui ogni campo è separato da uno spazio:

minutes hours days-of-month month days-of-week year

Esempi di espressioni cron

Minuti Ore Giorni del mese Mese Giorni della settimana Anno Significato

0

0

?

*

MON-FRI

*

Esegue un flusso di lavoro a mezzanotte (UTC+0) dal lunedì al venerdì.

0

2

*

*

?

*

Esegue un flusso di lavoro ogni giorno alle 2:00 (UTC+0).

15

22

*

*

?

*

Esegue un flusso di lavoro alle 22:15 (UTC+0) ogni giorno.

0/30

22-2

?

*

SAT-SUN

*

Esegue un flusso di lavoro ogni 30 minuti dal sabato alla domenica tra le 22:00 del giorno iniziale e le 2:00 del giorno successivo (UTC+0).

45

13

L

*

?

2023-2027

Esegue un flusso di lavoro alle 13:45 (UTC+0) dell'ultimo giorno del mese tra gli anni 2023 e 2027 inclusi.

Quando specifichi le espressioni cron in CodeCatalyst, assicurati di seguire queste linee guida:

  • Specificate una singola espressione cron per trigger. SCHEDULE

  • Racchiudi l'espressione cron tra virgolette doppie (") nell'editor. YAML

  • Specificate l'ora in Coordinated Universal Time (). UTC Altri fusi orari non sono supportati.

  • Configura almeno 30 minuti tra un'esecuzione e l'altra. Una cadenza più veloce non è supportata.

  • Specificare il days-of-month oppure days-of-week campo, ma non entrambi. Se si specifica un valore o un asterisco (*) in uno dei campi, è necessario utilizzare un punto interrogativo (?) nell'altro. L'asterisco significa «tutti» e il punto interrogativo significa «qualsiasi».

Per altri esempi di espressioni cron e informazioni sui caratteri jolly come, e ? *L, consulta il riferimento alle espressioni Cron nella Amazon EventBridge User Guide. Le espressioni Cron CodeCatalyst funzionano esattamente EventBridge allo stesso modo.

Per esempi di trigger di pianificazione, vedi. Esempi: trigger nei flussi di lavoro

Interfaccia utente corrispondente: visualeditor/workflow diagram/Triggers/Schedule

Azioni

Una sequenza di una o più azioni per questo flusso di lavoro. CodeCatalyst supporta diversi tipi di azioni, come azioni di compilazione e test, che offrono diversi tipi di funzionalità. Ogni tipo di azione ha:

  • una Identifier proprietà che indica l'ID univoco e codificato dell'azione. Ad esempio, aws/build@v1 identifica l'azione di compilazione.

  • una Configuration sezione che contiene proprietà specifiche dell'azione.

Per ulteriori informazioni su ciascun tipo di azione, vedereTipi di operazione. L'Tipi di operazioneargomento contiene collegamenti alla documentazione relativa a ciascuna azione.

Di seguito è riportato il YAML riferimento per le azioni e i gruppi di azioni nel file di definizione del flusso di lavoro.

Name: MyWorkflow SchemaVersion: 1.0 ... Actions: action-or-gate-name: Identifier: identifier Configuration: ... #Action groups action-group-name: Actions: ...

action-or-gate-name

(Actions/action-or-gate-name)

(Obbligatorio)

Replace (Sostituisci) action-name con il nome da assegnare all'azione. I nomi delle azioni devono essere univoci all'interno del flusso di lavoro e devono includere solo caratteri alfanumerici, trattini e caratteri di sottolineatura. Per ulteriori informazioni sulle regole di sintassi, vedere. YAMLlinee guida sulla sintassi

Per ulteriori informazioni sulle procedure di denominazione delle azioni, comprese le restrizioni, vedere. action-or-gate-name

Interfaccia utente corrispondente: visual editor/action-name/Scheda di configurazione/ Nome dell'azione o Nome visualizzato dell'azione

action-group-name

(Actions/action-group-name)

(Facoltativo)

Un gruppo di azioni contiene una o più azioni. Il raggruppamento delle azioni in gruppi di azioni consente di mantenere organizzato il flusso di lavoro e consente inoltre di configurare le dipendenze tra diversi gruppi.

Replace (Sostituisci) action-group-name con un nome che vuoi dare al gruppo di azioni. I nomi dei gruppi di azioni devono essere univoci all'interno del flusso di lavoro e devono includere solo caratteri alfanumerici, trattini e caratteri di sottolineatura. Per ulteriori informazioni sulle regole di sintassi, vedere. YAMLlinee guida sulla sintassi

Per ulteriori informazioni sui gruppi di azioni, vedereRaggruppamento delle azioni in gruppi di azione.

Interfaccia utente corrispondente: nessuna