Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Partage de données entre les actions d'un flux de travail à l'aide d'artefacts
Un artefact est le résultat d'une action de flux de travail et consiste généralement en un dossier ou une archive de fichiers. Les artefacts sont importants car ils vous permettent de partager des fichiers et des informations entre les actions.
Par exemple, vous pouvez avoir une action de génération qui génère un sam-template.yml
fichier, mais vous souhaitez qu'une action de déploiement l'utilise. Dans ce scénario, vous utiliseriez un artefact pour permettre à l'action de génération de partager le sam-template.yml
fichier avec l'action de déploiement. Le code pourrait ressembler à ceci :
Actions:
BuildAction:
Identifier: aws/build@v1
Steps:
- Run: sam package --output-template-file sam-template.yml
Outputs:
Artifacts:
- Name: MYARTIFACT
Files:
- sam-template.yml
DeployAction:
Identifier: aws/cfn-deploy@v1
Inputs:
Artifacts:
- MYARTIFACT
Configuration:
template: sam-template.yml
Dans le code précédent, l'action de construction (BuildAction
) génère un sam-template.yml
fichier, puis l'ajoute à un artefact de sortie appeléMYARTIFACT
. Une action de déploiement ultérieure (DeployAction
) est spécifiée MYARTIFACT
en entrée, lui donnant accès au sam-template.yml
fichier.
Puis-je partager des artefacts sans les spécifier en tant que sorties ou entrées ?
Oui, vous pouvez partager des artefacts entre des actions sans les spécifier dans les Inputs
sections Outputs
et du code YAML de vos actions. Pour ce faire, vous devez activer le partage de calcul. Pour plus d'informations sur le partage de calcul et sur la manière de spécifier des artefacts lorsqu'il est activé, consultezPartage du calcul entre les actions.
Note
Bien que la fonctionnalité de partage de calcul vous permette de simplifier le code YAML de votre flux de travail en éliminant le besoin de Inputs
sections Outputs
et, cette fonctionnalité présente des limites que vous devez connaître avant de l'activer. Pour plus d'informations sur ces limitations, consultezConsidérations relatives au partage du calcul.
Puis-je partager des artefacts entre les flux de travail ?
Non, vous ne pouvez pas partager d'artefacts entre différents flux de travail ; toutefois, vous pouvez partager des artefacts entre des actions au sein d'un même flux de travail.
Rubriques
Définition d'un artefact de sortie
Utilisez les instructions suivantes pour définir un artefact que vous souhaitez qu'une action génère. Cet artefact devient alors disponible pour d'autres actions.
Note
Toutes les actions ne prennent pas en charge les artefacts de sortie. Pour déterminer si votre action les prend en charge, parcourez les instructions de l'éditeur visuel qui suivent et vérifiez si l'action inclut un bouton Artefacts de sortie dans l'onglet Sorties. Dans l'affirmative, les artefacts de sortie sont pris en charge.
Définition d'un artefact d'entrée
Si vous souhaitez utiliser un artefact généré par une autre action, vous devez le spécifier comme entrée pour l'action en cours. Vous pouvez peut-être spécifier plusieurs artefacts en entrée, cela dépend de l'action. Pour plus d'informations, consultez le Définition du flux de travail YAML correspondant à votre action.
Note
Vous ne pouvez pas faire référence à des artefacts provenant d'autres flux de travail.
Suivez les instructions ci-dessous pour spécifier un artefact issu d'une autre action en tant qu'entrée de l'action en cours.
Prérequis
Avant de commencer, assurez-vous d'avoir généré l'artefact issu de l'autre action. Pour plus d’informations, consultez Définition d'un artefact de sortie. La sortie de l'artefact le rend disponible pour d'autres actions.
Référencement de fichiers dans un artefact
Si un fichier se trouve dans un artefact et que vous devez y faire référence dans l'une des actions de votre flux de travail, suivez la procédure ci-dessous.
Note
Pour référencer des fichiers dans un artefact
-
Dans l'action dans laquelle vous souhaitez référencer un fichier, ajoutez un code similaire au suivant :
Actions: My-action: Inputs: Sources: - WorkflowSource Artifacts: -
artifact-name
Configuration: Steps: - run: cd $CATALYST_SOURCE_DIR_artifact-name
/build-output && cat file.txtDans le code précédent, l'action recherche dans le
build-output
répertoire de l'artefact nom de l'artefact
pour trouver et afficher le fichier.file.txt
Pour obtenir plus d’exemples, consultez Exemples d'artefacts.
Note
Vous pouvez peut-être omettre le
$CATALYST_SOURCE_DIR_
préfixe en fonction de la façon dont vous avez configuré votre action. Pour plus d'informations, consultez les instructions suivantes.artifact-name
/Conseils sur la façon de faire référence aux variables :
-
Si votre action inclut un seul élément en dessous
Inputs
(par exemple, elle inclut un artefact d'entrée et aucune source), vous pouvez omettre le préfixe et spécifier uniquement le chemin du fichier par rapport à la racine de l'artefact. -
Vous pouvez également omettre le préfixe si le fichier se trouve dans l'entrée principale. L'entrée principale est soit le
WorkflowSource
, soit le premier artefact d'entrée répertorié, s'il n'y en a pasWorkflowSource
. -
Le préfixe peut être différent en fonction de l'action que vous utilisez. Pour plus d'informations, consultez le tableau suivant.
-
Type d'action | Préfixe de chemin de fichier à utiliser | Exemple |
---|---|---|
|
|
|
Toutes les autres actions |
or
|
or
|
Téléchargement d'artefacts
Vous pouvez télécharger et inspecter les artefacts générés par les actions de votre flux de travail à des fins de résolution des problèmes. Il existe deux types d'artefacts que vous pouvez télécharger :
-
Artefacts de source : artefact contenant un instantané du contenu du référentiel source tel qu'il existait au début de l'exécution.
-
Artefacts de flux de travail : artéfact défini dans la
Outputs
propriété du fichier de configuration de votre flux de travail.
Pour télécharger les artefacts produits par le flux de travail
Ouvrez la CodeCatalyst console à l'adresse https://codecatalyst.aws/
. -
Choisissez votre projet.
Dans le volet de navigation, choisissez CI/CD, puis Workflows.
-
Choisissez le nom de votre flux de travail. Vous pouvez filtrer par le nom du référentiel source ou de la branche où le flux de travail est défini, ou filtrer par nom de flux de travail.
-
Sous le nom du flux de travail, choisissez Runs.
-
Dans Historique des exécutions, dans la colonne Run ID, sélectionnez une exécution. Par exemple,
Run-95a4d
. -
Sous le nom de la course, sélectionnez Artifacts.
-
À côté d'un artefact, choisissez Télécharger. Un fichier d'archive est téléchargé. Son nom de fichier est composé de sept caractères aléatoires.
-
Extrayez l'archive à l'aide de l'utilitaire d'extraction d'archives de votre choix.
Exemples d'artefacts
Les exemples suivants montrent comment générer, saisir et référencer des artefacts dans le fichier de définition du flux de travail.
Rubriques
Exemple : sortie d'un artefact
L'exemple suivant montre comment générer un artefact qui inclut deux fichiers .jar.
Actions:
Build:
Identifier: aws/build@v1
Outputs:
Artifacts:
- Name: ARTIFACT1
Files:
- build-output/file1.jar
- build-output/file2.jar
Exemple : saisie d'un artefact généré par une autre action
L'exemple suivant vous montre comment générer un artefact appelé ARTIFACT4
in et BuildActionA
le saisir dansBuildActionB
.
Actions:
BuildActionA:
Identifier: aws/build@v1
Outputs:
Artifacts:
- Name: ARTIFACT4
Files:
- build-output/file1.jar
- build-output/file2.jar
BuildActionB:
Identifier: aws/build@v1
Inputs:
Artifacts:
- ARTIFACT4
Configuration:
Exemple : Référencement de fichiers dans plusieurs artefacts
L'exemple suivant montre comment générer deux artefacts nommés ART5
et ART6
dansBuildActionC
, puis référencer deux fichiers nommés file5.txt
(dans artefactART5
) et file6.txt
(dans artefactART6
) dans BuildActionD
(sousSteps
).
Note
Pour plus d'informations sur le référencement de fichiers, consultezRéférencement de fichiers dans un artefact.
Note
Bien que l'exemple montre le $CATALYST_SOURCE_DIR_ART5
préfixe utilisé, vous pouvez l'omettre. C'est parce que ART5
c'est l'entrée principale. Pour en savoir plus sur l'entrée principale, voirRéférencement de fichiers dans un artefact.
Actions:
BuildActionC:
Identifier: aws/build@v1
Outputs:
Artifacts:
- Name: ART5
Files:
- build-output/file5.txt
- Name: ART6
Files:
- build-output/file6.txt
BuildActionD:
Identifier: aws/build@v1
Inputs:
Artifacts:
- ART5
- ART6
Configuration:
Steps:
- run: cd $CATALYST_SOURCE_DIR_ART5/build-output && cat file5.txt
- run: cd $CATALYST_SOURCE_DIR_ART6/build-output && cat file6.txt
Exemple : Référencement d'un fichier dans un seul artefact
L'exemple suivant montre comment générer un artefact nommé ART7
dansBuildActionE
, puis référencer file7.txt
(dans artefactART7
) dans BuildActionF
(sousSteps
).
Notez que la référence ne nécessite pas le préfixe $CATALYST_SOURCE_DIR_
artifact-name
devant le build-output
répertoire comme c'était le cas dans. Exemple : Référencement de fichiers dans plusieurs artefacts Cela est dû au fait qu'un seul élément est spécifié sousInputs
.
Note
Pour plus d'informations sur le référencement de fichiers, consultezRéférencement de fichiers dans un artefact.
Actions:
BuildActionE:
Identifier: aws/build@v1
Outputs:
Artifacts:
- Name: ART7
Files:
- build-output/file7.txt
BuildActionF:
Identifier: aws/build@v1
Inputs:
Artifacts:
- ART7
Configuration:
Steps:
- run: cd build-output && cat file7.txt
Exemple : Référencer un fichier dans un artefact lorsqu'un est présent WorkflowSource
L'exemple suivant montre comment générer un artefact nommé ART8
dansBuildActionG
, puis référencer file8.txt
(dans artefactART8
) dans BuildActionH
(sousSteps
).
Remarquez que la référence nécessite le préfixe $CATALYST_SOURCE_DIR_
artifact-name
, comme c'était le cas dans. Exemple : Référencement de fichiers dans plusieurs artefacts Cela est dû au fait que plusieurs éléments sont spécifiés sous Inputs
(une source et un artefact). Vous avez donc besoin du préfixe pour indiquer où rechercher le fichier.
Note
Pour plus d'informations sur le référencement de fichiers, consultezRéférencement de fichiers dans un artefact.
Actions:
BuildActionG:
Identifier: aws/build@v1
Outputs:
Artifacts:
- Name: ART8
Files:
- build-output/file8.txt
BuildActionH:
Identifier: aws/build@v1
Inputs:
Sources:
- WorkflowSource
Artifacts:
- ART8
Configuration:
Steps:
- run: cd $CATALYST_SOURCE_DIR_ART8/build-output && cat file8.txt