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.
AWS CodeBuild créer et tester une référence d'action
Vous permet d'exécuter des générations et des tests dans le cadre de votre pipeline. Lorsque vous exécutez une action de CodeBuild génération ou de test, les commandes spécifiées dans la spécification de construction sont exécutées à l'intérieur d'un CodeBuild conteneur. Tous les artefacts qui sont spécifiés comme artefacts d'entrée pour une CodeBuild action sont disponibles dans le conteneur qui exécute les commandes. CodeBuild peut fournir une action de génération ou de test. Pour plus d’informations, consultez le Guide de l’utilisateur AWS CodeBuild.
Lorsque vous utilisez l' CodePipeline assistant de la console pour créer un projet de génération, le projet de CodeBuild génération indique que c'est le fournisseur source CodePipeline. Lorsque vous créez un projet de génération dans la CodeBuild console, vous ne pouvez pas le spécifier CodePipeline en tant que fournisseur source, mais l'ajout de l'action de génération à votre pipeline ajuste la source dans la CodeBuild console. Pour plus d’informations, consultez ProjectSource dans la Référence d’API AWS CodeBuild .
Rubriques
Type d'action
-
Catégorie :
BuildouTest -
Propriétaire :
AWS -
Fournisseur :
CodeBuild -
Version :
1
Paramètres de configuration
- ProjectName
-
Obligatoire : oui
ProjectNameest le nom du projet de construction dans CodeBuild. - PrimarySource
-
Obligatoire : Conditionnelle
La valeur du
PrimarySourceparamètre doit être le nom de l'un des artefacts d'entrée de l'action. CodeBuild recherche le fichier buildspec et exécute les commandes buildspec dans le répertoire qui contient la version décompressée de cet artefact.Ce paramètre est obligatoire si plusieurs artefacts d'entrée sont spécifiés pour une action CodeBuild . Lorsqu'il n'y a qu'un seul artefact source pour l'action, l'artefact
PrimarySourcecorrespond par défaut à cet artefact. - BatchEnabled
-
Obligatoire : non
La valeur booléenne du
BatchEnabledparamètre permet à l'action d'exécuter plusieurs builds lors de la même exécution de build.Lorsque cette option est activée, elle est disponible.
CombineArtifactsPour des exemples de pipeline dans lesquels la génération par lots est activée, consultez la section CodePipeline Intégration avec CodeBuild et génération par lots.
- BuildspecOverride
-
Obligatoire : non
Une définition de spécification de construction en ligne ou une déclaration de fichier de spécification de construction qui remplace la dernière définition définie dans le projet de construction, pour cette version uniquement. La spécification de construction définie sur le projet n'est pas modifiée.
Si cette valeur est définie, il peut s'agir de l'une des valeurs suivantes :
-
Une définition de spécification de construction en ligne. Pour plus d'informations, consultez la référence de syntaxe sur Buildspec syntax.
-
Le chemin d'accès à un autre fichier buildspec par rapport à la valeur de la variable d'
CODEBUILD_SRC_DIRenvironnement intégrée ou le chemin d'accès à un compartiment S3. Le compartiment doit se trouver dans le même emplacement Région AWS que le projet de construction. Spécifiez le fichier buildspec à l'aide de son nom ARN (par exemple,arn:aws:s3:::my-codebuild-sample2/buildspec.yml). Si cette valeur n'est pas fournie ou est définie sur une chaîne vide, le code source doit contenir un fichier buildspec dans son répertoire racine. Pour plus d'informations sur l'ajout d'un chemin, consultez la section Nom du fichier Buildspec et emplacement de stockage.
Note
Comme cette propriété vous permet de modifier les commandes de génération qui seront exécutées dans le conteneur, vous devez noter qu'un principal IAM capable d'appeler cette API et de définir ce paramètre peut remplacer les paramètres par défaut. De plus, nous vous recommandons d'utiliser un emplacement de spécification de construction fiable, tel qu'un fichier de votre référentiel source ou un compartiment Amazon S3.
-
- CombineArtifacts
-
Obligatoire : non
La valeur booléenne du
CombineArtifactsparamètre combine tous les artefacts de génération d'une génération par lots dans un seul fichier d'artefacts pour l'action de génération.Pour utiliser cette option, le
BatchEnabledparamètre doit être activé. - EnvironmentVariables
-
Obligatoire : non
La valeur de ce paramètre est utilisée pour définir des variables d'environnement pour l'action CodeBuild dans votre pipeline. La valeur du paramètre
EnvironmentVariablesprend la forme d'un tableau JSON d'objets variables d'environnement. Consultez l'exemple de paramètre dans Déclaration d'action (CodeBuild exemple).Chaque objet comporte trois parties, qui sont toutes des chaînes :
-
name: Nom ou clé de la variable d'environnement. -
value: Valeur de la variable d'environnement. Lorsque vous utilisez leSECRETS_MANAGERtypePARAMETER_STOREou, cette valeur doit être le nom d'un paramètre que vous avez déjà stocké dans le magasin de paramètres de AWS Systems Manager ou un secret que vous avez déjà enregistré dans AWS Secrets Manager, respectivement.Note
Nous déconseillons vivement l'utilisation de variables d'environnement pour stocker des valeurs sensibles, en particulier des AWS informations d'identification. Lorsque vous utilisez la CodeBuild console ou l' AWS interface de ligne de commande, les variables d'environnement sont affichées en texte brut. Pour les valeurs sensibles, nous vous recommandons d'utiliser plutôt le type
SECRETS_MANAGER. -
type: (facultatif) Type de la variable d'environnement. Les valeurs valides sontPARAMETER_STORE,SECRETS_MANAGERouPLAINTEXT. Si rien spécifié, la valeur par défaut estPLAINTEXT.
Note
Lorsque vous entrez la configuration
namevalue, ettypepour vos variables d'environnement, en particulier si la variable d'environnement contient la syntaxe de la variable de CodePipeline sortie, ne dépassez pas la limite de 1 000 caractères pour le champ de valeur de la configuration. Une erreur de validation est renvoyée lorsque cette limite est dépassée.Pour plus d'informations, consultez EnvironmentVariable la référence de AWS CodeBuild l'API. Pour un exemple CodeBuild d'action avec une variable d'environnement dont la résolution est le nom de la GitHub branche, consultezExemple : utilisation d'une BranchName variable avec des variables d' CodeBuild environnement.
-
- ServiceRoleArnOverride
-
Obligatoire : non
Un ARN de rôle IAM qui est CodeBuild utilisé comme rôle de service pour les builds déclenchés par cette action, remplaçant ainsi le rôle de service par défaut configuré sur le CodeBuild projet. En cas d'absence, le CodeBuild projet utilise son rôle de service par défaut.
Le rôle spécifié doit disposer d'une politique de confiance qui permet au
codebuild.amazonaws.comservice de l'assumer. L'identité utilisée pour créer ou mettre à jour le pipeline et le rôle de service de pipeline doivent disposer d'uneiam:PassRoleautorisation pour le rôle spécifié. Pour un exemple de politique, consultez Autorisations relatives aux rôles de service : CodeBuild action.En tant que meilleure pratique en matière de sécurité, lorsqu'un CodeBuild projet est partagé entre plusieurs pipelines, nous vous recommandons de spécifier un rôle délimité pour chaque pipeline afin de respecter le principe du moindre privilège. Pour les pipelines utilisant des actions de CodeConnections source, consultez un Ajoutez CodeBuild GitClone des autorisations pour les connexions à Bitbucket GitHub, GitHub Enterprise Server ou GitLab.com exemple de définition de la portée des autorisations de connexion du rôle à un référentiel spécifique.
Note
Le rôle doit figurer dans le même AWS compte que le CodeBuild projet.
Artefacts d'entrée
-
Nombre d'objets :
1 to 5 -
Description : CodeBuild recherche le fichier buildspec et exécute les commandes buildspec depuis le répertoire de l'artefact source principal. Lorsqu'une seule source d'entrée est spécifiée ou lorsque plusieurs sources d'entrée sont spécifiées pour l' CodeBuild action, l'artefact unique, ou l'artefact principal dans le cas de plusieurs sources d'entrée, doit être défini à l'aide du paramètre de configuration de l'
PrimarySourceaction dans. CodePipelineChaque artefact d'entrée est extrait dans son propre répertoire, dont les emplacements sont stockés dans des variables d'environnement. Le répertoire de l'artefact source principal est mis à disposition avec
$CODEBUILD_SRC_DIR. Les répertoires de tous les autres artefacts d'entrée sont mis à disposition avec$CODEBUILD_SRC_DIR_yourInputArtifactName.Note
L'artefact configuré dans votre CodeBuild projet devient l'artefact d'entrée utilisé par l' CodeBuild action dans votre pipeline.
Artefacts de sortie
-
Nombre d'objets :
0 to 5 -
Description : ils peuvent être utilisés pour mettre les artefacts définis dans le fichier CodeBuild buildspec à la disposition des actions ultérieures du pipeline. Lorsqu'un seul artefact de sortie est défini, cet artefact peut être défini directement dans la
artifactssection du fichier buildspec. Lorsque plusieurs artefacts de sortie sont spécifiés, tous les artefacts référencés doivent être définis comme artefacts secondaires dans le fichier buildspec. Les noms des artefacts de sortie CodePipeline doivent correspondre aux identificateurs d'artefacts contenus dans le fichier buildspec.Note
L'artefact configuré dans votre CodeBuild projet devient l'artefact CodePipeline d'entrée dans votre action de pipeline.
Si le
CombineArtifactsparamètre est sélectionné pour les constructions par lots, l'emplacement des artefacts en sortie contient les artefacts combinés de plusieurs builds exécutés lors de la même exécution.
Variables de sortie
Cette action produira en tant que variables toutes les variables d'environnement ayant été exportées dans le cadre de la génération. Pour plus de détails sur la façon d'exporter des variables d'environnement, consultez EnvironmentVariable le Guide des AWS CodeBuild API.
Pour plus d'informations sur l'utilisation des variables d' CodeBuild environnement dans CodePipeline, consultez les exemples figurant dansCodeBuild variables de sortie d'action. Pour obtenir la liste des variables d'environnement que vous pouvez utiliser CodeBuild, consultez la section Variables d'environnement dans les environnements de génération du Guide de AWS CodeBuild l'utilisateur.
Autorisations relatives aux rôles de service : CodeBuild action
Pour obtenir de l' CodeBuild aide, ajoutez ce qui suit à votre déclaration de politique :
Si vous utilisez le ServiceRoleArnOverride paramètre, ajoutez l'iam:PassRoleautorisation suivante pour CodePipeline permettre de transmettre le rôle à CodeBuild :
{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::111122223333:role/your-codebuild-override-role", "Condition": { "StringEquals": { "iam:PassedToService": "codebuild.amazonaws.com" } } }
Déclaration d'action (CodeBuild exemple)
Consultez aussi
Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.
-
AWS CodeBuild Guide de l'utilisateur — Pour un exemple de pipeline avec une CodeBuild action, voir Utiliser CodePipeline avec CodeBuild pour tester le code et exécuter des builds. Pour des exemples de projets comportant plusieurs CodeBuild artefacts d'entrée et de sortie, voir CodePipeline Intégration avec CodeBuild plusieurs sources d'entrée et échantillons d'artefacts de sortie et Exemples de sources d'entrée et d'artefacts de sortie multiples.
-
Tutoriel : Créez un pipeline qui crée et teste votre application Android avec AWS Device Farm— Ce didacticiel fournit un exemple de fichier buildspec et un exemple d'application pour créer un pipeline avec une GitHub source qui crée et teste une application Android avec CodeBuild et. AWS Device Farm
-
Référence de spécification de génération pour CodeBuild : cette rubrique de référence fournit des définitions et des exemples permettant de comprendre les fichiers CodeBuild buildspec. Pour obtenir la liste des variables d'environnement que vous pouvez utiliser CodeBuild, consultez la section Variables d'environnement dans les environnements de génération du Guide de AWS CodeBuild l'utilisateur.