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 CodePipelineintegración CodeBuild y muestra de múltiples fuentes de entrada y artefactos de salida
Un proyecto de AWS CodeBuild puede aceptar varios orígenes de entrada. También puede crear más de un artefacto de salida. En este ejemplo, se muestra cómo se utiliza AWS CodePipeline para crear un proyecto de compilación que utiliza varios orígenes de entrada a fin de crear varios artefactos de salida. Para obtener más información, consulte Ejemplo de varios orígenes de entrada y varios artefactos de salida.
Puede utilizar un archivo con formato JSON que defina la estructura de la canalización y, después, usarlo con la 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, consulte la referencia a la estructura deCodePipeline tuberías en la Guía delAWS 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 donde CodeBuild busca y ejecuta el archivo buildspec. La palabra clavePrimarySource
se utiliza para especificar la fuente principal en laconfiguration
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. -
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.
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 la AWS CLI para ejecutar el comando create-pipeline y transferir el archivo al parámetro --cli-input-json
. Para obtener más información, consulte Crear una canalización (CLI) en la Guía delAWS CodePipeline usuario.