

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

En esta sección se describen ejemplos de integraciones entre CodePipeline y CodeBuild.


| Muestra | Description (Descripción) | 
| --- | --- | 
|  [Ejemplos de CodePipeline/CodeBuild integraciones y compilaciones por lotes](#sample-pipeline-batch)  |  Estos ejemplos muestran cómo AWS CodePipeline crear un proyecto de compilación que utilice compilaciones por lotes.  | 
|  [Ejemplo de una CodePipeline/CodeBuild integración con múltiples fuentes de entrada y artefactos de salida](#sample-pipeline-multi-input-output)  |  En este ejemplo se muestra cómo AWS CodePipeline crear un proyecto de compilación que utilice varias fuentes de entrada para crear varios artefactos de salida.  | 

## Ejemplos de CodePipeline/CodeBuild integraciones y compilaciones por lotes
<a name="sample-pipeline-batch"></a>

AWS CodeBuild admite compilaciones por lotes. Los siguientes ejemplos muestran cómo AWS CodePipeline crear un proyecto de compilación que utilice compilaciones por lotes.

Puedes usar un archivo con formato JSON que defina la estructura de tu canalización y luego usarlo con él AWS CLI para crear la canalización. Para obtener más información, consulte [Referencia de la estructura de canalización de AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html) en la *Guía del usuario de AWS CodePipeline *.

### Compilación por lotes con artefactos individuales
<a name="sample-pipeline-batch.separate-artifacts"></a>

Utilice el archivo JSON siguiente como ejemplo de una estructura de canalización que crea una compilación por lotes con artefactos individuales. Para habilitar las compilaciones por lotes CodePipeline, defina el `BatchEnabled` parámetro del objeto en`configuration`. `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
  }
}
```

El siguiente es un ejemplo de un archivo CodeBuild buildspec que funcionará con esta configuración de canalización.

```
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
```

Los nombres de los artefactos de salida especificados en el archivo JSON de la canalización deben coincidir con el identificador de las compilaciones y los artefactos definidos en el archivo de especificación de la compilación. La sintaxis es *buildIdentifier* para los artefactos principales y *buildIdentifier* \$1 *artifactIdentifier* para los artefactos secundarios.

Por ejemplo, para el nombre del artefacto de salida`build1`, CodeBuild cargará el artefacto principal de en `build1` la ubicación de. `build1` Para el nombre de salida`build1_artifact1`, CodeBuild cargará el artefacto secundario `artifact1` de `build1` a la ubicación de`build1_artifact1`, y así sucesivamente. Si solo se especifica una ubicación de salida, el nombre debe ser *buildIdentifier* solo.

Una vez creado el archivo JSON, puede crear la canalización. Utilice el AWS CLI para ejecutar el comando **create-pipeline** y pasar el archivo al `--cli-input-json` parámetro. Para obtener más información, consulte [Creación de una canalización (CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli) en la *Guía del usuario de AWS CodePipeline *. 

### Compilación por lotes con artefactos combinados
<a name="sample-pipeline-batch.combined-artifacts"></a>

Utilice el archivo JSON siguiente como ejemplo de una estructura de canalización que crea una compilación por lotes con artefactos combinados. Para habilitar las compilaciones por lotes CodePipeline, defina el `BatchEnabled` parámetro del `configuration` objeto en. `true` Para combinar los artefactos de compilación en la misma ubicación, defina el parámetro `CombineArtifacts` del 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
 }
}
```

El siguiente es un ejemplo de un archivo CodeBuild buildspec que funcionará con esta configuración de canalización.

```
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 los artefactos combinados están habilitados para la compilación por lotes, solo se permite una salida. CodeBuild combinará los artefactos principales de todas las compilaciones en un único archivo ZIP.

Una vez creado el archivo JSON, puede crear la canalización. Utilice el AWS CLI para ejecutar el comando **create-pipeline** y pasar el archivo al `--cli-input-json` parámetro. Para obtener más información, consulte [Creación de una canalización (CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli) en la *Guía del usuario de AWS CodePipeline *. 

## Ejemplo de una CodePipeline/CodeBuild integración con múltiples fuentes de entrada y artefactos de salida
<a name="sample-pipeline-multi-input-output"></a>

Un AWS CodeBuild proyecto puede tomar más de una fuente de entrada. También puede crear más de un artefacto de salida. En este ejemplo se muestra cómo AWS CodePipeline crear un proyecto de compilación que utilice varias fuentes de entrada para crear varios artefactos de salida. Para obtener más información, consulte [Ejemplo de varios orígenes de entrada y varios artefactos de salida](sample-multi-in-out.md).

Puedes usar un archivo con formato JSON que defina la estructura de tu canalización y luego usarlo con él AWS CLI para crear la canalización. Utilice el archivo JSON siguiente como ejemplo de una estructura de canalización que crea una compilación con más de un origen de entrada y más de un artefacto de salida. Más adelante en este ejemplo podrá ver cómo dicho archivo especifica las distintas entradas y salidas. *Para obtener más información, consulta la [referencia sobre la estructura de CodePipeline canalización](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html) en la Guía del AWS CodePipeline usuario.*

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

 En este archivo JSON: 
+ Debe designar uno de los orígenes de entrada como `PrimarySource`. Esta fuente es el directorio en el que CodeBuild busca y ejecuta el archivo buildspec. La palabra clave `PrimarySource` se usa para especificar la fuente principal en la `configuration` sección de la CodeBuild etapa del archivo JSON. 
+ Cada origen de entrada se instala en su propio directorio. Este directorio se almacena en la variable de entorno integrado `$CODEBUILD_SRC_DIR` para el origen principal y `$CODEBUILD_SRC_DIR_yourInputArtifactName` para todos los demás orígenes. Para la canalización de este ejemplo, los dos directorios de origen de entrada son `$CODEBUILD_SRC_DIR` y `$CODEBUILD_SRC_DIR_source2`. Para obtener más información, consulte [Variables de entorno en los entornos de compilación](build-env-ref-env-vars.md). 
+ Los nombres de los artefactos de salida especificados en el archivo JSON de la canalización deben coincidir con los de los artefactos secundarios definidos en el archivo buildspec. Esta canalización utiliza el archivo buildspec siguiente. Para obtener más información, consulte [Sintaxis 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
  ```

 Una vez creado el archivo JSON, puede crear la canalización. Utilice AWS CLI para ejecutar el comando **create-pipeline** y pasar el archivo al `--cli-input-json` parámetro. Para obtener más información, consulte [Creación de una canalización (CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli) en la *Guía del usuario de AWS CodePipeline *. 