

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.

# Créez un projet de construction avec plusieurs entrées et sorties
<a name="sample-multi-in-out-create"></a>

Utilisez la procédure suivante pour créer un projet de construction avec plusieurs entrées et sorties.

**Pour créer un projet de construction avec plusieurs entrées et sorties**

1.  Téléchargez vos sources vers un ou plusieurs buckets S3, CodeCommit GitHub, GitHub Enterprise Server ou référentiels Bitbucket. 

1.  Choisissez quelle source est la source principale. Il s'agit de la source dans laquelle vous CodeBuild recherchez et exécutez votre fichier buildspec. 

1.  Créez un projet de génération. Pour de plus amples informations, veuillez consulter [Créez un projet de construction dans AWS CodeBuild](create-project.md). 

1.  Créez votre projet de build, exécutez le build et obtenez des informations sur le build. 

1.  Si vous utilisez le AWS CLI pour créer le projet de construction, l'entrée au format JSON de la `create-project` commande peut ressembler à ce qui suit : 

   ```
   {
     "name": "sample-project",
     "source": {
       "type": "S3",
       "location": "<bucket/sample.zip>"
     },
     "secondarySources": [
       {
         "type": "CODECOMMIT",
         "location": "https://git-codecommit.us-west-2.amazonaws.com/v1/repos/repo",
         "sourceIdentifier": "source1"
       },
       {
         "type": "GITHUB",
         "location": "https://github.com/awslabs/aws-codebuild-jenkins-plugin",
         "sourceIdentifier": "source2"
       }
     ],
     "secondaryArtifacts": [ss
       {
         "type": "S3",
         "location": "<output-bucket>",
         "artifactIdentifier": "artifact1"
       },
       {
         "type": "S3",
         "location": "<other-output-bucket>",
         "artifactIdentifier": "artifact2"
       }
     ],
     "environment": {
       "type": "LINUX_CONTAINER",
       "image": "aws/codebuild/standard:5.0",
       "computeType": "BUILD_GENERAL1_SMALL"
     },
     "serviceRole": "arn:aws:iam::account-ID:role/role-name",
     "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"
   }
   ```

 Votre source principale est définie sous l'attribut `source`. Toutes les autres sources sont appelées « sources secondaires » et apparaissent sous `secondarySources`. Toutes les sources secondaires sont installées dans leur propre répertoire. Ce répertoire est stocké dans la variable d'environnement intégrée `CODEBUILD_SRC_DIR_sourceIdentifer`. Pour de plus amples informations, veuillez consulter [Variables d'environnement dans les environnements de génération](build-env-ref-env-vars.md). 

 L'attribut `secondaryArtifacts` contient une liste de définitions d'artefacts. Ces artefacts utilisent le bloc `secondary-artifacts` du fichier buildspec qui est imbriqué dans le bloc `artifacts`. 

 Les artefacts secondaires du fichier buildspec ont la même structure que tous les artefacts et sont séparés par leur identifiant d'artefact. 

**Note**  
 Dans l'API [CodeBuild ](https://docs.aws.amazon.com/codebuild/latest/APIReference/), l'attribut `artifactIdentifier` sur un artefact secondaire est obligatoire dans `CreateProject` et `UpdateProject`. Il doit être utilisé pour référencer un artefact secondaire. 

 Lorsque vous utilisez l'entrée précédente au format JSON, le fichier buildspec du projet peut ressembler à ce qui suit : 

```
version: 0.2

phases:
  install:
    runtime-versions:
      java: openjdk11
  build:
    commands:
      - cd $CODEBUILD_SRC_DIR_source1
      - touch file1
      - cd $CODEBUILD_SRC_DIR_source2
      - touch file2

artifacts:
  files:
    - '**.*'
  secondary-artifacts:
    artifact1:
      base-directory: $CODEBUILD_SRC_DIR_source1
      files:
        - file1
    artifact2:
      base-directory: $CODEBUILD_SRC_DIR_source2
      files:
        - file2
```

 Vous pouvez substituer la version de la source principale à l'aide de l'API avec l'attribut `sourceVersion` dans `StartBuild`. Pour substituer une ou plusieurs versions de source secondaire, utilisez l'attribut `secondarySourceVersionOverride`. 

 L'entrée au format JSON de la `start-build` commande dans le AWS CLI peut ressembler à ceci : 

```
{
   "projectName": "sample-project",
   "secondarySourcesVersionOverride": [
      {
        "sourceIdentifier": "source1",
        "sourceVersion": "codecommit-branch"
      },
      {
        "sourceIdentifier": "source2",
        "sourceVersion": "github-branch"
      },
   ]
}
```