Referencia de acciones de origen de CodeCommit - AWS CodePipeline

Referencia de acciones de origen de CodeCommit

Inicia la canalización cuando se realiza una nueva confirmación en el repositorio y la ramificación de CodeCommit configurados.

Si utiliza la consola para crear o editar la canalización, CodePipeline crea una regla de EventBridge que inicia la canalización cuando se produce un cambio en el repositorio.

nota

Para los orígenes de Amazon ECR, Amazon S3 o CodeCommit, también puede crear una anulación de origen mediante la entrada de transformación de entrada para utilizar revisionValue en EventBridge para el evento de canalización, donde revisionValue se deriva de la variable de evento de origen para la clave de objeto, confirmación o ID de imagen. Para obtener más información, consulte el paso opcional para la entrada de transformación de entrada, que se incluye en los procedimientos de acciones de origen de Amazon ECR y recursos de EventBridge, Conexión a acciones de origen de Amazon S3 con un origen habilitado para eventos o acciones de origen de CodeCommit y EventBridge.

Debe haber creado un repositorio CodeCommit antes de conectar la canalización a través de una acción CodeCommit.

Después de detectar un cambio de código, tiene las siguientes opciones para pasar el código a acciones posteriores:

  • Default (Predeterminado): configura la acción de origen de CodeCommit para generar un archivo ZIP con una copia superficial de la confirmación.

  • Clonación completa: configura la acción de origen para generar una referencia de URL de Git al repositorio para acciones posteriores.

    Actualmente, la referencia URL de git solo se puede utilizar en acciones de CodeBuild posteriores para clonar el repositorio y los metadatos de Git asociados. Si se intenta pasar una referencia URL de Git a acciones que no son de CodeBuild, se produce un error.

Tipo de acción

  • Categoría: Source

  • Propietario: : AWS

  • Proveedor: CodeCommit

  • Versión: 1

Parámetros de configuración

RepositoryName

Obligatorio: sí

El nombre del repositorio en el que se van a detectar los cambios de origen.

BranchName

Obligatorio: sí

El nombre de la ramificación donde se van a detectar los cambios de origen.

PollForSourceChanges

Obligatorio: no

PollForSourceChanges controla si CodePipeline sondea el repositorio CodeCommit para los cambios de origen. Le recomendamos que utilice Eventos de CloudWatch para detectar cambios de origen en su lugar. Para obtener más información sobre la configuración de Eventos de CloudWatch, consulte Migración de canalizaciones de sondeo (origen de CodeCommit) (CLI) o Migrar las canalizaciones de sondeo (fuente de CodeCommit) (plantilla de CloudFormation).

importante

Si tiene la intención de configurar una regla de Eventos de CloudWatch, debe establecer PollForSourceChanges en false para evitar ejecuciones de canalización duplicadas.

Los valores válidos para este parámetro son:

  • true: si está configurado, CodePipeline sondea su repositorio para detectar cambios de origen.

    nota

    Si se omite PollForSourceChanges, CodePipeline sondea de forma predeterminada el repositorio para detectar cambios de origen. Este comportamiento es el mismo que si se incluye PollForSourceChanges y se establece en true.

  • false: si se establece, CodePipeline no sondea su repositorio para detectar cambios de origen. Utilice esta opción si desea configurar una regla de Eventos de CloudWatch para detectar cambios en el origen.

OutputArtifactFormat

Obligatorio: no

El formato del artefacto de salida. Los valores pueden ser CODEBUILD_CLONE_REF o CODE_ZIP. Si no se especifica, el valor predeterminado es CODE_ZIP.

importante

La opción CODEBUILD_CLONE_REF solo se puede utilizar en acciones de CodeBuild posteriores.

Si eliges esta opción, tendrás que añadir el permiso codecommit:GitPull a su rol de servicio CodeBuild, tal y como se muestra en Añadir permisos de GitClone de CodeBuild para las acciones de origen de CodeCommit. También tiene que añadir el permiso codecommit:GetRepository a su rol de servicio CodePipeline, tal y como se muestra en Añadir permisos al rol de servicio de CodePipeline. Para ver un tutorial que muestra cómo utilizar la opción Clonación completa, consulte Tutorial: Usar una clonación completo con un origen de canalización de CodeCommit.

Artefactos de entrada

  • Número de artefactos: 0

  • Descripción: los artefactos de entrada no se aplican a este tipo de acción.

Artefactos de salida

  • Número de artefactos: 1

  • Descripción: el artefacto de salida de esta acción es un archivo ZIP que contiene el contenido del repositorio configurado y la ramificación en la confirmación especificada como la revisión de origen para la ejecución de la canalización. Los artefactos generados desde el repositorio son los artefactos de salida de la acción CodeCommit. El ID de confirmación de código fuente se muestra en CodePipeline como la revisión de origen para la ejecución de canalización desencadenada.

Variables de salida

Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Esta acción produce variables que se pueden ver como variables de salida, incluso si la acción no tiene un espacio de nombres. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.

Para obtener más información, consulte Referencia de variables.

CommitId

El ID de confirmación de CodeCommit que desencadenó la ejecución de la canalización. Los ID de confirmación son el volumen de dispositivo raíz completo de la confirmación.

CommitMessage

El mensaje de descripción, si lo hay, asociado a la confirmación que desencadenó la ejecución de la canalización.

RepositoryName

El nombre del repositorio de CodeCommit donde se realizó la confirmación que activó la canalización.

BranchName

El nombre de la ramificación del repositorio de CodeCommit donde se realizó el cambio de origen.

AuthorDate

Fecha en la que se creó la confirmación, en formato de marca temporal.

CommitterDate

Fecha en la que se ha confirmado la confirmación, en formato de marca temporal.

Permisos del rol de servicio: acción de CodeCommit

Cuando CodePipeline ejecuta la acción, la política del rol de servicio de CodePipeline requiere los siguientes permisos, que se reducen adecuadamente al ARN del recurso de canalización para mantener el acceso de privilegio mínimo. Por ejemplo, agregue lo siguiente a su declaración de política:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:CancelUploadArchive", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:GetUploadArchiveStatus", "codecommit:UploadArchive" ], "Resource": [ "arn:aws:codecommit:*:111122223333:[[codecommitRepostories]]" ] } ] }

Ejemplo de configuración de una acción

Ejemplo de formato de artefacto de salida predeterminado

YAML
name: Source actionTypeId: category: Source owner: AWS provider: CodeCommit version: '1' runOrder: 1 configuration: BranchName: main PollForSourceChanges: 'false' RepositoryName: MyWebsite outputArtifacts: - name: Artifact_MyWebsiteStack inputArtifacts: [] region: us-west-2 namespace: SourceVariables
JSON
{ "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "provider": "CodeCommit", "version": "1" }, "runOrder": 1, "configuration": { "BranchName": "main", "PollForSourceChanges": "false", "RepositoryName": "MyWebsite" }, "outputArtifacts": [ { "name": "Artifact_MyWebsiteStack" } ], "inputArtifacts": [], "region": "us-west-2", "namespace": "SourceVariables" }

Ejemplo de formato de artefacto de salida de clonación

YAML
name: Source actionTypeId: category: Source owner: AWS provider: CodeCommit version: '1' runOrder: 1 configuration: BranchName: main OutputArtifactFormat: CODEBUILD_CLONE_REF PollForSourceChanges: 'false' RepositoryName: MyWebsite outputArtifacts: - name: SourceArtifact inputArtifacts: [] region: us-west-2 namespace: SourceVariables
JSON
{ "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "provider": "CodeCommit", "version": "1" }, "runOrder": 1, "configuration": { "BranchName": "main", "OutputArtifactFormat": "CODEBUILD_CLONE_REF", "PollForSourceChanges": "false", "RepositoryName": "MyWebsite" }, "outputArtifacts": [ { "name": "SourceArtifact" } ], "inputArtifacts": [], "region": "us-west-2", "namespace": "SourceVariables" }

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.