Partage de données entre les actions d'un flux de travail à l'aide d'artefacts - Amazon CodeCatalyst

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.

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.

Visual
Pour définir un artefact de sortie à l'aide de l'éditeur visuel
  1. Ouvrez la CodeCatalyst console à l'adresse https://codecatalyst.aws/.

  2. Choisissez votre projet.

  3. Dans le volet de navigation, choisissez CI/CD, puis Workflows.

  4. 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.

  5. Choisissez Modifier.

  6. Choisissez Visual.

  7. Dans le diagramme du flux de travail, choisissez l'action qui produira l'artefact.

  8. Choisissez l'onglet Outputs.

  9. Sous Artefacts, choisissez Ajouter un artefact.

  10. Choisissez Ajouter un artefact, puis entrez les informations dans les champs, comme suit.

    Nom de l'artefact de construction

    Spécifiez le nom d'un artefact généré par l'action. Les noms d'artifact doivent être uniques dans un flux de travail et sont limités aux caractères alphanumériques (a-z, A-Z, 0-9) et aux traits de soulignement (_). Les espaces, les tirets (-) et les autres caractères spéciaux ne sont pas autorisés. Vous ne pouvez pas utiliser de guillemets pour activer les espaces, les tirets et autres caractères spéciaux dans les noms d'artefacts en sortie.

    Pour plus d'informations sur les artefacts, y compris des exemples, consultezPartage de données entre les actions d'un flux de travail à l'aide d'artefacts.

    Fichiers produits par build

    Spécifiez les fichiers CodeCatalyst inclus dans l'artefact généré par l'action. Ces fichiers sont générés par l'action du flux de travail lorsqu'elle s'exécute et sont également disponibles dans votre référentiel source. Les chemins de fichiers peuvent résider dans un référentiel source ou dans un artefact issu d'une action précédente, et sont relatifs au référentiel source ou à la racine de l'artefact. Vous pouvez utiliser des modèles globulaires pour définir des chemins. Exemples :

    • Pour spécifier un seul fichier situé à la racine de l'emplacement de votre build ou de votre référentiel source, utilisezmy-file.jar.

    • Pour spécifier un seul fichier dans un sous-répertoire, utilisez directory/my-file.jar oudirectory/subdirectory/my-file.jar.

    • Pour spécifier tous les fichiers, utilisez"**/*". Le modèle ** glob indique qu'il doit correspondre à un nombre quelconque de sous-répertoires.

    • Pour spécifier tous les fichiers et répertoires d'un répertoire nommédirectory, utilisez"directory/**/*". Le modèle ** glob indique qu'il doit correspondre à un nombre quelconque de sous-répertoires.

    • Pour spécifier tous les fichiers d'un répertoire nommédirectory, mais aucun de ses sous-répertoires, utilisez"directory/*".

    Note

    Si le chemin de votre fichier comporte un ou plusieurs astérisques (*) ou autres caractères spéciaux, mettez-le entre guillemets (). "" Pour plus d'informations sur les caractères spéciaux, consultezConsignes et conventions de syntaxe.

    Pour plus d'informations sur les artefacts, y compris des exemples, consultezPartage de données entre les actions d'un flux de travail à l'aide d'artefacts.

    Note

    Vous devrez peut-être ajouter un préfixe au chemin du fichier pour indiquer dans quel artefact ou dans quelle source le trouver. Pour plus d’informations, consultez Référencement de fichiers dans un référentiel source et Référencement de fichiers dans un artefact.

  11. (Facultatif) Choisissez Valider pour valider le code YAML du flux de travail avant de le valider.

  12. Choisissez Valider, entrez un message de validation, puis choisissez à nouveau Valider.

YAML
Pour définir un artefact de sortie à l'aide de l'éditeur YAML
  1. Ouvrez la CodeCatalyst console à l'adresse https://codecatalyst.aws/.

  2. Choisissez votre projet.

  3. Dans le volet de navigation, choisissez CI/CD, puis Workflows.

  4. 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.

  5. Choisissez Modifier.

  6. Choisissez YAML.

  7. Dans une action de flux de travail, ajoutez un code similaire au suivant :

    action-name: Outputs: Artifacts: - Name: artifact-name Files: - file-path-1 - file-path-2

    Pour obtenir plus d’exemples, consultez Exemples d'artefacts. Pour plus d'informations, consultez le Définition du flux de travail YAML correspondant à votre action.

  8. (Facultatif) Choisissez Valider pour valider le code YAML du flux de travail avant de le valider.

  9. Choisissez Valider, entrez un message de validation, puis choisissez à nouveau Valider.

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.

Visual
Pour spécifier un artefact en tant qu'entrée d'une action (éditeur visuel)
  1. Ouvrez la CodeCatalyst console à l'adresse https://codecatalyst.aws/.

  2. Choisissez votre projet.

  3. Dans le volet de navigation, choisissez CI/CD, puis Workflows.

  4. 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.

  5. Choisissez Modifier.

  6. Choisissez Visual.

  7. Dans le diagramme du flux de travail, choisissez l'action dans laquelle vous souhaitez spécifier un artefact en entrée.

  8. Choisissez Entrées.

  9. Dans Artefacts - optional, procédez comme suit :

    Spécifiez les artefacts des actions précédentes que vous souhaitez fournir en entrée pour cette action. Ces artefacts doivent déjà être définis en tant qu'artefacts de sortie dans les actions précédentes.

    Si vous ne spécifiez aucun artefact d'entrée, vous devez spécifier au moins un référentiel source sousaction-name/Inputs/Sources.

    Pour plus d'informations sur les artefacts, y compris des exemples, consultezPartage de données entre les actions d'un flux de travail à l'aide d'artefacts.

    Note

    Si la liste déroulante Artéfacts - optionnelle n'est pas disponible (éditeur visuel), ou si vous recevez des erreurs lors de la validation de votre YAML (éditeur YAML), c'est peut-être parce que l'action ne prend en charge qu'une seule entrée. Dans ce cas, essayez de supprimer l'entrée source.

  10. (Facultatif) Choisissez Valider pour valider le code YAML du flux de travail avant de le valider.

  11. Choisissez Valider, entrez un message de validation, puis choisissez à nouveau Valider.

YAML
Pour spécifier un artefact en entrée d'une action (éditeur YAML)
  1. Ouvrez la CodeCatalyst console à l'adresse https://codecatalyst.aws/.

  2. Choisissez votre projet.

  3. Dans le volet de navigation, choisissez CI/CD, puis Workflows.

  4. 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.

  5. Choisissez Modifier.

  6. Choisissez YAML.

  7. Dans l'action dans laquelle vous souhaitez spécifier l'artefact en entrée, ajoutez un code similaire au suivant :

    action-name: Inputs: Artifacts: - artifact-name

    Pour obtenir plus d’exemples, consultez Exemples d'artefacts.

  8. (Facultatif) Choisissez Valider pour valider le code YAML du flux de travail avant de le valider.

  9. Choisissez Valider, entrez un message de validation, puis choisissez à nouveau Valider.

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.

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.txt

    Dans 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_artifact-name/ préfixe en fonction de la façon dont vous avez configuré votre action. Pour plus d'informations, consultez les instructions suivantes.

    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 leWorkflowSource, 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

Créez une action, testez une action

$CATALYST_SOURCE_DIR_artifact-name/

$CATALYST_SOURCE_DIR_MyArtifact/folder1/file.txt

Toutes les autres actions

$CATALYST_SOURCE_DIR_artifact-name/

or

/artifacts/current-action-name/artifact-name/(ce chemin est un lien symbolique vers $CATALYST_SOURCE_DIR_ artifact-name/)

$CATALYST_SOURCE_DIR_MyArtifact/folder1/file.txt

or

/artifacts/MyCurrentAction/MyArtifact/folder1/file.txt

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
  1. Ouvrez la CodeCatalyst console à l'adresse https://codecatalyst.aws/.

  2. Choisissez votre projet.

  3. Dans le volet de navigation, choisissez CI/CD, puis Workflows.

  4. 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.

  5. Sous le nom du flux de travail, choisissez Runs.

  6. Dans Historique des exécutions, dans la colonne Run ID, sélectionnez une exécution. Par exemple, Run-95a4d.

  7. Sous le nom de la course, sélectionnez Artifacts.

  8. À 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.

  9. 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.

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