

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# AWS CodePipeline amostras para CodeBuild
<a name="sample-codepipeline"></a>

Esta seção descreve exemplos de integrações entre CodePipeline e. CodeBuild


| Amostra | Description | 
| --- | --- | 
|  [Amostras de CodePipeline/CodeBuild integrações e compilações em lote](#sample-pipeline-batch)  |  Esses exemplos demonstram como usar AWS CodePipeline para criar um projeto de compilação que usa compilações em lote.  | 
|  [Amostra de uma CodePipeline/CodeBuild integração com várias fontes de entrada e artefatos de saída](#sample-pipeline-multi-input-output)  |  Este exemplo demonstra como usar AWS CodePipeline para criar um projeto de construção que usa várias fontes de entrada para criar vários artefatos de saída.  | 

## Amostras de CodePipeline/CodeBuild integrações e compilações em lote
<a name="sample-pipeline-batch"></a>

AWS CodeBuild suporta compilações em lote. Os exemplos a seguir demonstram como usar AWS CodePipeline para criar um projeto de compilação que usa compilações em lote.

Você pode usar um arquivo formatado em JSON que define a estrutura do seu pipeline e, em seguida, usá-lo com o AWS CLI para criar o pipeline. Para obter mais informações, consulte [AWS CodePipeline Pipeline structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html) no *Guia do usuário do AWS CodePipeline *.

### Compilação em lote com artefatos individuais
<a name="sample-pipeline-batch.separate-artifacts"></a>

Use o arquivo JSON a seguir como exemplo de uma estrutura de pipeline que cria uma compilação em lote com artefatos separados. Para habilitar a criação em lote CodePipeline, defina o `BatchEnabled` parâmetro do `configuration` objeto como`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
  }
}
```

Veja a seguir um exemplo de um arquivo CodeBuild buildspec que funcionará com essa configuração 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
```

Os nomes dos artefatos de saída especificados no arquivo JSON do pipeline devem coincidir com o identificador das compilações e dos artefatos definidos no arquivo buildspec. A sintaxe é *buildIdentifier* para os artefatos primários e *buildIdentifier* \$1 *artifactIdentifier* para os artefatos secundários.

Por exemplo, para o nome do artefato de saída`build1`, CodeBuild fará o upload do artefato primário de `build1` para o local de. `build1` Para o nome de saída`build1_artifact1`, CodeBuild fará o upload do artefato secundário `artifact1` de `build1` para o local de`build1_artifact1`, e assim por diante. Se somente um local de saída for especificado, o nome deverá ser *buildIdentifier* somente.

Depois que você criar o arquivo JSON, poderá criar o pipeline. Use o AWS CLI para executar o comando **create-pipeline** e passar o arquivo para o parâmetro. `--cli-input-json` Para obter mais informações, consulte [Create a pipeline (CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli) no *Guia do usuário do AWS CodePipeline *. 

### Compilação em lote com artefatos combinados
<a name="sample-pipeline-batch.combined-artifacts"></a>

Use o arquivo JSON a seguir como exemplo de uma estrutura de pipeline que cria uma compilação em lote com artefatos combinados. Para habilitar a criação em lote CodePipeline, defina o `BatchEnabled` parâmetro do `configuration` objeto como`true`. Para combinar os artefatos de compilação no mesmo local, defina o parâmetro `CombineArtifacts` do objeto `configuration` como `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
 }
}
```

Veja a seguir um exemplo de um arquivo CodeBuild buildspec que funcionará com essa configuração 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
```

Se os artefatos combinados estiverem habilitados para a construção em lote, haverá somente uma saída permitida. CodeBuild combinará os artefatos primários de todas as compilações em um único arquivo ZIP.

Depois que você criar o arquivo JSON, poderá criar o pipeline. Use o AWS CLI para executar o comando **create-pipeline** e passar o arquivo para o parâmetro. `--cli-input-json` Para obter mais informações, consulte [Criar um pipeline (CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli) no *Guia do usuário do AWS CodePipeline *. 

## Amostra de uma CodePipeline/CodeBuild integração com várias fontes de entrada e artefatos de saída
<a name="sample-pipeline-multi-input-output"></a>

Um AWS CodeBuild projeto pode usar mais de uma fonte de entrada. Ele também pode criar mais de um artefato de saída. Este exemplo demonstra como usar AWS CodePipeline para criar um projeto de construção que usa várias fontes de entrada para criar vários artefatos de saída. Para obter mais informações, consulte [Várias fontes de entrada e exemplos de artefatos de saída](sample-multi-in-out.md).

Você pode usar um arquivo formatado em JSON que define a estrutura do seu pipeline e, em seguida, usá-lo com o AWS CLI para criar o pipeline. Use o seguinte arquivo JSON como um exemplo de estrutura de pipeline que cria uma compilação com mais de uma origem de entrada e mais de um artefato de saída. Mais adiante neste exemplo, você verá como este arquivo especifica as várias entradas e saídas. Para obter mais informações, consulte a [referência da estrutura do CodePipeline pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html) no *Guia AWS CodePipeline do usuário*.

```
{
 "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
 }
}
```

 Neste arquivo JSON: 
+ Uma das suas origens de entrada deve ser designada como `PrimarySource`. Essa fonte é o diretório em que CodeBuild procura e executa seu arquivo buildspec. A palavra-chave `PrimarySource` é usada para especificar a fonte primária na `configuration` seção do CodeBuild estágio no arquivo JSON. 
+ Cada origem de entrada é instalada em seu próprio diretório. Esse diretório é armazenado na variável de ambiente interna `$CODEBUILD_SRC_DIR` para a origem principal e `$CODEBUILD_SRC_DIR_yourInputArtifactName` para todas as outras origens. Para o pipeline neste exemplo, os dois diretórios da origem de entrada são `$CODEBUILD_SRC_DIR` e `$CODEBUILD_SRC_DIR_source2`. Para obter mais informações, consulte [Variáveis de ambiente em ambientes de compilação](build-env-ref-env-vars.md). 
+ Os nomes dos artefatos de saída especificados no arquivo JSON do pipeline devem coincidir com os nomes dos artefatos secundários definidos no arquivo buildspec. Esse pipeline usa o arquivo buildspec a seguir: Para obter mais informações, consulte [Sintaxe de 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
  ```

 Depois que você criar o arquivo JSON, poderá criar o pipeline. Use o AWS CLI para executar o comando **create-pipeline** e passar o arquivo para o parâmetro. `--cli-input-json` Para obter mais informações, consulte [Criar um pipeline (CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli) no *Guia do usuário do AWS CodePipeline *. 