Uso de AWS CodeBuild con Jenkins - AWS CodeBuild

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.

Uso de AWS CodeBuild con Jenkins

Puede usar el complemento Jenkins de AWS CodeBuild para integrar CodeBuild con sus trabajos de compilación de Jenkins. En lugar de enviar los trabajos de compilación a los nodos de compilación de Jenkins, puede usar el complemento para enviar los trabajos de compilación a CodeBuild. De esta manera, ya no tendrá que aprovisionar, configurar ni administrar nodos de compilación de Jenkins.

Configuración de Jenkins

Para obtener información sobre cómo configurar Jenkins con el complemento AWS CodeBuild y descargar el código fuente del complemento, consulte https://github.com/awslabs/aws-codebuild-jenkins-plugin.

Instalación del complemento

Si ya ha configurado el servidor de Jenkins y solo desea instalar el complemento de AWS CodeBuild, en su instancia de Jenkins, en el administrador de complementos, busque CodeBuild Plugin for Jenkins.

Uso del complemento

Para utilizar AWS CodeBuild con orígenes que se encuentren fuera de una VPC
  1. Cree un proyecto en la consola de CodeBuild. Para obtener más información, consulte Creación de un proyecto de compilación (consola).

    • Elija la región de AWS en la que desea ejecutar la compilación.

    • (Opcional) Establezca la configuración de Amazon VPC para permitir que el contenedor de compilaciones de CodeBuild obtenga acceso a los recursos de la VPC.

    • Anote el nombre de su proyecto. Lo necesitará en el paso 3.

    • (Opcional) Si su repositorio de fuentes no es compatible de forma nativa con CodeBuild, puede configurar Amazon S3 como el tipo de fuente de entrada del proyecto.

  2. En la consola de IAM, cree el usuario para usarlo en el complemento Jenkins.

    • Cuando cree las credenciales del usuario, elija Programmatic Access.

    • Cree una política similar a la siguiente y, a continuación, asocie la política al usuario.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": ["arn:aws:logs:{{region}}:{{awsAccountId}}:log-group:/aws/codebuild/{{projectName}}:*"], "Action": ["logs:GetLogEvents"] }, { "Effect": "Allow", "Resource": ["arn:aws:s3:::{{inputBucket}}"], "Action": ["s3:GetBucketVersioning"] }, { "Effect": "Allow", "Resource": ["arn:aws:s3:::{{inputBucket}}/{{inputObject}}"], "Action": ["s3:PutObject"] }, { "Effect": "Allow", "Resource": ["arn:aws:s3:::{{outputBucket}}/*"], "Action": ["s3:GetObject"] }, { "Effect": "Allow", "Resource": ["arn:aws:codebuild:{{region}}:{{awsAccountId}}:project/{{projectName}}"], "Action": ["codebuild:StartBuild", "codebuild:BatchGetBuilds", "codebuild:BatchGetProjects"] } ] }
  3. Cree un proyecto de estilo libre en Jenkins.

    • En la página Configurar, elija Añadir paso de compilación y después Ejecutar compilación en CodeBuild.

    • Configure el paso de compilación.

      • Proporcione valores para Region, Credentials y Project Name.

      • Elija Use Project source.

      • Guarde la configuración y ejecute una compilación desde Jenkins.

  4. En Source Code Management, elija cómo desea recuperar el origen. Es posible que necesite instalar el complemento GitHub (o el complemento Jenkins del proveedor del repositorio de origen) en su servidor de Jenkins.

    • En la página Configure, elija Add build step y después Run build on AWS CodeBuild.

    • Configure el paso de compilación.

      • Proporcione valores para Region, Credentials y Project Name.

      • Elija Use Jenkins source.

      • Guarde la configuración y ejecute una compilación desde Jenkins.

Para utilizar el complemento de AWS CodeBuild con el complemento Pipeline de Jenkins
  • En la página del proyecto de canalizaciones de Jenkins, utilice el generador de fragmentos para generar un script de canalización que añada CodeBuild como un paso de la canalización. Debe generar un script similar a este:

    awsCodeBuild projectName: 'project', credentialsType: 'keys', region: 'us-west-2', sourceControlType: 'jenkins'