

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.

# Exemples de projets avec plusieurs sources d'entrée et plusieurs artefacts de sortie
<a name="sample-multi-in-out"></a>

Vous pouvez créer un projet de AWS CodeBuild construction avec plusieurs sources d'entrée et plusieurs ensembles d'artefacts de sortie. Cet exemple vous montre comment configurer un projet de génération qui : 
+ utilise plusieurs sources et référentiels de différents types ;
+ publie des artefacts de génération vers plusieurs compartiments S3 dans une seule génération.

 Dans l'exemple suivant, vous allez créer un projet de build et l'utiliser pour exécuter une build. L'exemple utilise le fichier buildspec du projet de génération pour vous montrer comment intégrer plusieurs sources et créer plusieurs ensembles d'artefacts. 

Pour savoir comment créer un pipeline qui utilise plusieurs entrées source afin de CodeBuild créer plusieurs artefacts de sortie, voir[Exemple d' CodePipeline/CodeBuild intégration avec plusieurs sources d'entrée et artefacts de sortie](sample-codepipeline.md#sample-pipeline-multi-input-output).

**Topics**
+ [Créez un projet de construction avec plusieurs entrées et sorties](sample-multi-in-out-create.md)
+ [Création d'un projet de construction sans source](no-source.md)

# 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"
      },
   ]
}
```

# Création d'un projet de construction sans source
<a name="no-source"></a>

 Vous pouvez configurer un CodeBuild projet en choisissant le type de **NO\$1SOURCE** source lorsque vous configurez votre source. Lorsque votre type de source est **NO\$1SOURCE**, vous ne pouvez pas spécifier de fichier buildspec car votre projet n'a pas de source. Au lieu de cela, vous devez spécifier une chaîne buildspec au format YAML dans l'attribut `buildspec` de l'entrée au format JSON pour la commande de l'interface de ligne de commande `create-project`. Elle peut ressembler à ceci : 

```
{
  "name": "project-name",
  "source": {
    "type": "NO_SOURCE",
    "buildspec": "version: 0.2\n\nphases:\n  build:\n    commands:\n      - command"
   },
  "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"
}
```

Pour de plus amples informations, veuillez consulter [Création d'un projet de génération (AWS CLI)](create-project.md#create-project-cli).