

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 CodePipeline échantillons pour CodeBuild
<a name="sample-codepipeline"></a>

Cette section décrit des exemples d'intégrations entre CodePipeline et. CodeBuild


| Exemple | Description | 
| --- | --- | 
|  [Exemples d' CodePipeline/CodeBuild intégrations et de versions par lots](#sample-pipeline-batch)  |  Ces exemples montrent comment AWS CodePipeline créer un projet de génération utilisant des builds par lots.  | 
|  [Exemple d' CodePipeline/CodeBuild intégration avec plusieurs sources d'entrée et artefacts de sortie](#sample-pipeline-multi-input-output)  |  Cet exemple montre comment AWS CodePipeline créer un projet de génération qui utilise plusieurs sources d'entrée pour créer plusieurs artefacts de sortie.  | 

## Exemples d' CodePipeline/CodeBuild intégrations et de versions par lots
<a name="sample-pipeline-batch"></a>

AWS CodeBuild prend en charge les builds par lots. Les exemples suivants montrent comment AWS CodePipeline créer un projet de génération utilisant des builds par lots.

Vous pouvez utiliser un fichier au format JSON qui définit la structure de votre pipeline, puis l'utiliser avec le AWS CLI pour créer le pipeline. Pour plus d'informations, consultez la section [Référence sur la structure du AWS CodePipeline pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html) dans le *guide de AWS CodePipeline l'utilisateur*.

### Construction par lots avec des artefacts individuels
<a name="sample-pipeline-batch.separate-artifacts"></a>

Utilisez le fichier JSON suivant comme exemple de structure de pipeline qui crée une construction par lots avec des artefacts distincts. Pour activer les intégrations par lots CodePipeline, définissez le `BatchEnabled` paramètre de l'`configuration`objet sur`true`.

```
{
  "pipeline": {
    "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name",
    "stages": [
      {
        "name": "Source",
        "actions": [
          {
            "inputArtifacts": [],
            "name": "Source1",
            "actionTypeId": {
              "category": "Source",
              "owner": "AWS",
              "version": "1",
              "provider": "S3"
            },
            "outputArtifacts": [
              {
                "name": "source1"
              }
            ],
            "configuration": {
              "S3Bucket": "<my-input-bucket-name>",
              "S3ObjectKey": "my-source-code-file-name.zip"
            },
            "runOrder": 1
          },
          {
            "inputArtifacts": [],
            "name": "Source2",
            "actionTypeId": {
              "category": "Source",
              "owner": "AWS",
              "version": "1",
              "provider": "S3"
            },
            "outputArtifacts": [
              {
                "name": "source2"
              }
            ],
            "configuration": {
              "S3Bucket": "<my-other-input-bucket-name>",
              "S3ObjectKey": "my-other-source-code-file-name.zip"
            },
            "runOrder": 1
          }
        ]
      },
      {
        "name": "Build",
        "actions": [
          {
            "inputArtifacts": [
              {
                "name": "source1"
              },
              {
                "name": "source2"
              }
            ],
            "name": "Build",
            "actionTypeId": {
              "category": "Build",
              "owner": "AWS",
              "version": "1",
              "provider": "CodeBuild"
            },
            "outputArtifacts": [
              {
                "name": "build1"
              },
              {
                "name": "build1_artifact1"
              },
              {
                "name": "build1_artifact2"
              },
              {
                "name": "build2_artifact1"
              },
              {
                "name": "build2_artifact2"
              }
            ],
            "configuration": {
              "ProjectName": "my-build-project-name",
              "PrimarySource": "source1",
              "BatchEnabled": "true"
            },
            "runOrder": 1
          }
        ]
      }
    ],
    "artifactStore": {
      "type": "S3",
      "location": "<AWS-CodePipeline-internal-bucket-name>"
    },
    "name": "my-pipeline-name",
    "version": 1
  }
}
```

Voici un exemple de fichier CodeBuild buildspec qui fonctionnera avec cette configuration de pipeline.

```
version: 0.2
batch:
  build-list:
    - identifier: build1
      env:
        compute-type: BUILD_GENERAL1_SMALL
    - identifier: build2
      env:
        compute-type: BUILD_GENERAL1_MEDIUM

phases:
  build:
    commands:
      - echo 'file' > output_file

artifacts:
  files:
    - output_file
  secondary-artifacts:
    artifact1:
      files:
        - output_file
    artifact2:
      files:
        - output_file
```

Les noms des artefacts de sortie spécifiés dans le fichier JSON du pipeline doivent correspondre à l'identifiant des builds et des artefacts définis dans votre fichier buildspec. La syntaxe est *buildIdentifier* pour les artefacts principaux et *buildIdentifier* \$1 *artifactIdentifier* pour les artefacts secondaires.

Par exemple, pour le nom de l'artefact en sortie`build1`, CodeBuild téléchargera l'artefact principal de `build1` à l'emplacement de. `build1` Pour le nom de sortie`build1_artifact1`, CodeBuild téléchargera l'artefact secondaire `artifact1` de `build1` à l'emplacement de`build1_artifact1`, et ainsi de suite. Si un seul emplacement de sortie est spécifié, le nom doit être *buildIdentifier* uniquement.

Une fois que vous avez créé le fichier JSON, vous pouvez créer votre pipeline. Utilisez le AWS CLI pour exécuter la commande **create-pipeline** et transmettre le fichier au `--cli-input-json` paramètre. Pour plus d'informations, consultez la section [Créer un pipeline (CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli) dans le *guide de AWS CodePipeline l'utilisateur*. 

### Construction par lots avec des artefacts combinés
<a name="sample-pipeline-batch.combined-artifacts"></a>

Utilisez le fichier JSON suivant comme exemple de structure de pipeline qui crée une construction par lots avec des artefacts combinés. Pour activer les intégrations par lots CodePipeline, définissez le `BatchEnabled` paramètre de l'`configuration`objet sur`true`. Pour combiner les artefacts de construction au même endroit, définissez le `CombineArtifacts` paramètre de l'`configuration`objet sur`true`.

```
{
 "pipeline": {
  "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name",
  "stages": [
    {
      "name": "Source",
      "actions": [
        {
          "inputArtifacts": [],
          "name": "Source1",
          "actionTypeId": {
            "category": "Source",
            "owner": "AWS",
            "version": "1",
            "provider": "S3"
          },
          "outputArtifacts": [
            {
              "name": "source1"
            }
          ],
          "configuration": {
            "S3Bucket": "<my-input-bucket-name>",
            "S3ObjectKey": "my-source-code-file-name.zip"
          },
          "runOrder": 1
        },
        {
          "inputArtifacts": [],
          "name": "Source2",
          "actionTypeId": {
            "category": "Source",
            "owner": "AWS",
            "version": "1",
            "provider": "S3"
          },
          "outputArtifacts": [
            {
              "name": "source2"
            }
          ],
          "configuration": {
            "S3Bucket": "<my-other-input-bucket-name>",
            "S3ObjectKey": "my-other-source-code-file-name.zip"
          },
          "runOrder": 1
        }
      ]
    },
    {
      "name": "Build",
      "actions": [
        {
          "inputArtifacts": [
            {
              "name": "source1"
            },
            {
              "name": "source2"
            }
          ],
          "name": "Build",
          "actionTypeId": {
            "category": "Build",
            "owner": "AWS",
            "version": "1",
            "provider": "CodeBuild"
          },
          "outputArtifacts": [
            {
              "name": "output1 "
            }
          ],
          "configuration": {
            "ProjectName": "my-build-project-name",
            "PrimarySource": "source1",
             "BatchEnabled": "true",
             "CombineArtifacts": "true"
          },
          "runOrder": 1
        }
      ]
    }
  ],
  "artifactStore": {
    "type": "S3",
    "location": "<AWS-CodePipeline-internal-bucket-name>"
  },
  "name": "my-pipeline-name",
  "version": 1
 }
}
```

Voici un exemple de fichier CodeBuild buildspec qui fonctionnera avec cette configuration de pipeline.

```
version: 0.2
batch:
  build-list:
    - identifier: build1
      env:
        compute-type: BUILD_GENERAL1_SMALL
    - identifier: build2
      env:
        compute-type: BUILD_GENERAL1_MEDIUM

phases:
  build:
    commands:
      - echo 'file' > output_file

artifacts:
  files:
    - output_file
```

Si les artefacts combinés sont activés pour la génération par lots, une seule sortie est autorisée. CodeBuild combinera les principaux artefacts de toutes les versions dans un seul fichier ZIP.

Une fois que vous avez créé le fichier JSON, vous pouvez créer votre pipeline. Utilisez le AWS CLI pour exécuter la commande **create-pipeline** et transmettre le fichier au `--cli-input-json` paramètre. Pour plus d'informations, consultez la section [Créer un pipeline (CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli) dans le *guide de AWS CodePipeline l'utilisateur*. 

## Exemple d' CodePipeline/CodeBuild intégration avec plusieurs sources d'entrée et artefacts de sortie
<a name="sample-pipeline-multi-input-output"></a>

Un AWS CodeBuild projet peut utiliser plusieurs sources d'entrée. Il peut également créer plusieurs artefacts de sortie. Cet exemple montre comment AWS CodePipeline créer un projet de génération qui utilise plusieurs sources d'entrée pour créer plusieurs artefacts de sortie. Pour de plus amples informations, veuillez consulter [Exemples de projets avec plusieurs sources d'entrée et plusieurs artefacts de sortie](sample-multi-in-out.md).

Vous pouvez utiliser un fichier au format JSON qui définit la structure de votre pipeline, puis l'utiliser avec le AWS CLI pour créer le pipeline. Utilisez le fichier JSON suivant comme exemple de structure de pipeline qui crée une génération avec plusieurs sources d'entrée et plusieurs artefacts de sortie. Ultérieurement dans cet exemple, vous apprendrez comment ce fichier spécifie les différentes entrées et sorties. Pour plus d'informations, consultez [la référence sur la structure du CodePipeline pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html) dans le *guide de AWS CodePipeline l'utilisateur*.

```
{
 "pipeline": {
  "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name",
  "stages": [
    {
      "name": "Source",
      "actions": [
        {
          "inputArtifacts": [],
          "name": "Source1",
          "actionTypeId": {
            "category": "Source",
            "owner": "AWS",
            "version": "1",
            "provider": "S3"
          },
          "outputArtifacts": [
            {
              "name": "source1"
            }
          ],
          "configuration": {
            "S3Bucket": "my-input-bucket-name",
            "S3ObjectKey": "my-source-code-file-name.zip"
          },
          "runOrder": 1
        },
        {
          "inputArtifacts": [],
          "name": "Source2",
          "actionTypeId": {
            "category": "Source",
            "owner": "AWS",
            "version": "1",
            "provider": "S3"
          },
          "outputArtifacts": [
            {
              "name": "source2"
            }
          ],
          "configuration": {
            "S3Bucket": "my-other-input-bucket-name",
            "S3ObjectKey": "my-other-source-code-file-name.zip"
          },
          "runOrder": 1
        }
      ]
    },
    {
      "name": "Build",
      "actions": [
        {
          "inputArtifacts": [
            {
              "name": "source1"
            },
            {
              "name": "source2"
            }
          ],
          "name": "Build",
          "actionTypeId": {
            "category": "Build",
            "owner": "AWS",
            "version": "1",
            "provider": "AWS CodeBuild"
          },
          "outputArtifacts": [
            {
              "name": "artifact1"
            },
            {
              "name": "artifact2"
            }
          ],
          "configuration": {
            "ProjectName": "my-build-project-name",
            "PrimarySource": "source1"
          },
          "runOrder": 1
        }
      ]
    }
  ],
  "artifactStore": {
    "type": "S3",
    "location": "AWS-CodePipeline-internal-bucket-name"
  },
  "name": "my-pipeline-name",
  "version": 1
 }
}
```

 Dans ce fichier JSON : 
+ L'une de vos sources d'entrée doit être désignée comme `PrimarySource`. Cette source est le répertoire dans lequel CodeBuild recherche et exécute votre fichier buildspec. Le mot clé `PrimarySource` est utilisé pour spécifier la source principale dans la `configuration` section du CodeBuild stage du fichier JSON. 
+ Chaque source d'entrée est installée dans son propre répertoire. Ce répertoire est stocké dans la variable d'environnement intégrée `$CODEBUILD_SRC_DIR` pour la source principale et `$CODEBUILD_SRC_DIR_yourInputArtifactName` pour toutes les autres sources. Pour le pipeline de cet exemple, les deux répertoires des sources d'entrée sont `$CODEBUILD_SRC_DIR` et `$CODEBUILD_SRC_DIR_source2`. Pour de plus amples informations, veuillez consulter [Variables d'environnement dans les environnements de génération](build-env-ref-env-vars.md). 
+ Les noms des artefacts de sortie spécifiés dans le fichier JSON du pipeline doivent correspondre aux noms des artefacts secondaires définis dans votre fichier buildspec. Ce pipeline utilise le fichier buildspec suivant. Pour de plus amples informations, veuillez consulter [Syntaxe d'un fichier buildspec](build-spec-ref.md#build-spec-ref-syntax). 

  ```
  version: 0.2
  
  phases:
    build:
      commands:
        - touch source1_file
        - cd $CODEBUILD_SRC_DIR_source2
        - touch source2_file
  
  artifacts:
    files:
      - '**/*'
    secondary-artifacts:
      artifact1:
        base-directory: $CODEBUILD_SRC_DIR
        files:
          - source1_file
      artifact2:
        base-directory: $CODEBUILD_SRC_DIR_source2
        files:
          - source2_file
  ```

 Une fois que vous avez créé le fichier JSON, vous pouvez créer votre pipeline. Utilisez le AWS CLI pour exécuter la commande **create-pipeline** et transmettre le fichier au `--cli-input-json` paramètre. Pour plus d'informations, consultez la section [Créer un pipeline (CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli) dans le *guide de AWS CodePipeline l'utilisateur*. 