Puede automatizar el proceso de lanzamiento utilizando AWS CodePipeline para probar el código y ejecutar las compilaciones con AWS CodeBuild.
En la siguiente tabla se muestran las tareas y los métodos disponibles que se pueden realizar. El uso de los SDK de AWS para realizar estas tareas queda fuera del ámbito de este tema.
Tarea | Enfoques disponibles | Enfoques descritos en este tema |
---|---|---|
Crear una canalización de entrega continua (CD) con CodePipeline que automatice las compilaciones con CodeBuild |
|
|
Añadir la automatización de pruebas y compilaciones con CodeBuild a una canalización existente en CodePipeline |
|
|
Temas
- Requisitos previos
- Crear una canalización que use CodeBuild (consola de CodePipeline)
- Crear una canalización que use CodeBuild (AWS CLI)
- Agregar una acción de compilación de CodeBuild a una canalización (consola de CodePipeline)
- Agregar una acción de prueba de CodeBuild a una canalización (consola de CodePipeline)
Requisitos previos
-
Responda a las preguntas de Planificación de una compilación.
-
Si va a utilizar un usuario para acceder a CodePipeline en lugar de una cuenta raíz o un administrador de AWS, asocie la política administrada denominada
AWSCodePipelineFullAccess
al usuario (o al grupo de IAM al que pertenece el usuario). No se recomienda usar una cuenta raíz de AWS. Esta política concede al usuario permiso para crear la canalización en CodePipeline. Para obtener más información, consulte Asociar políticas administradas en la Guía del usuario.nota
La entidad de IAM que asocia la política al usuario (o al grupo de IAM al que pertenece el usuario) debe tener permiso en IAM para asociar políticas. Para obtener más información, consulte Delegación de permisos para administrar usuarios, grupos y credenciales de IAM en la Guía del usuario.
-
Cree un rol de servicio de CodePipeline, si aún no dispone de uno en su cuenta de AWS. Este rol de servicio permite a AWS interactuar con otros servicios de , incluido AWS CodeBuild, en su nombre. Por ejemplo, si desea usar la AWS CLI para crear un rol de servicio de CodePipeline, ejecute el comando
create-role
de IAM:Para Linux, macOS o Unix:
aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Principal":{"Service":"codepipeline.amazonaws.com"},"Action":"sts:AssumeRole"}}'
Para Windows:
aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"codepipeline.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}}"
nota
La entidad de IAM que crea este rol de servicio de CodePipeline debe tener permiso en para crear roles de servicio.
-
Después de crear un rol de servicio de CodePipeline o identificar uno existente, debe agregar la política de roles de servicio de CodePipeline predeterminada al rol de servicio, tal y como se describe en Revisar la política predeterminada de roles de servicio de CodePipeline en la Guía del usuario de AWS CodePipeline, si aún no forma parte de la política del rol.
nota
La entidad de IAM que añade esta política de rol de servicio de CodePipeline debe tener permiso en para añadir políticas de roles de servicio a roles de servicio.
-
Cree y cargue el código fuente a un tipo de repositorio compatible con CodeBuild y CodePipeline, como CodeCommit, Amazon S3, Bitbucket o GitHub. El código fuente debe contener un archivo buildspec, pero puede declarar uno cuando defina un proyecto de compilación más adelante en este tema. Para obtener más información, consulte Referencia de la especificación de compilación.
importante
Si tiene previsto utilizar la canalización para implementar el código fuente compilado, el artefacto de salida de la compilación debe ser compatible con el sistema de implementación que utilice.
-
En el caso de AWS OpsWorks, consulte Fuente de la aplicación y Uso de CodePipeline con AWS OpsWorks en la Guía del usuario de AWS OpsWorks.
-