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
Argomenti
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
-
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
Triggers
Type
, 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:
-
TRUE
significa che l'immagine dell'ambiente di runtime è condivisa tra le azioni del flusso di lavoro. -
FALSE
significa 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'
CLOSED
evento è 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) YAMLL'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'
REVISION
evento nel trigger della pull request, puoi omettere l'OPEN
evento, 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:
-
Il ramo verso cui stai eseguendo il push (per i trigger push). Per ulteriori informazioni, consulta Esempio: un semplice pulsante di attivazione tramite codice.
-
Il ramo da cui stai prelevando (per i trigger di pull request). Per ulteriori informazioni, consulta Esempio: un semplice trigger di pull request.
-
Tutte le filiali (per i trigger di pianificazione). Verrà avviata un'unica esecuzione del flusso di lavoro per ramo nel repository di origine. Per ulteriori informazioni, consulta Esempio: un semplice trigger di pianificazione.
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
oppuredays-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