Usar o AWS CodeBuild com o Jenkins - AWS CodeBuild

Usar o AWS CodeBuild com o Jenkins

É possível usar o plug-in do Jenkins para AWS CodeBuild para integrar o CodeBuild com os trabalhos de compilação do Jenkins. Em vez de enviar os trabalhos de compilação aos nós de compilação do Jenkins, use o plug-in para enviar os trabalhos de compilação ao CodeBuild. Isso elimina a necessidade de você provisionar, configurar e gerenciar nós de build do Jenkins.

Configurar o Jenkins

Para obter informações sobre como configurar o Jenkins com o plug-in AWS CodeBuild e baixar o código-fonte do plug-in, consulte https://github.com/awslabs/aws-codebuild-jenkins-plugin.

Instalar o plug-in

Se você já tem um servidor do Jenkins configurado e quer apenas instalar o plug-in do AWS CodeBuild, em sua instância do Jenkins, no Gerenciador de plug-ins, procure o CodeBuild Plugin for Jenkins.

Usar o plug-in

Como usar o AWS CodeBuild com fontes de fora de uma VPC
  1. Crie um projeto no console do CodeBuild. Para obter mais informações, consulte Criar um projeto de compilação (console).

    • Selecione a região da AWS onde você deseja executar a compilação.

    • (Opcional) Defina a configuração da Amazon VPC para permitir que o contêiner de compilação do CodeBuild acesse recursos na VPC.

    • Anote o nome do projeto. Você vai precisar dele na etapa 3.

    • (Opcional) Se o repositório de origem não for nativamente compatível com o CodeBuild, defina o Amazon S3 como o tipo de origem de entrada do projeto.

  2. No console do IAM, crie um usuário a ser usado pelo plug-in do Jenkins.

    • Ao criar credenciais para o usuário, selecione Programmatic Access (Acesso programático).

    • Crie uma política semelhante à seguinte e, em seguida, anexe-a ao usuário.

      { "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. Crie um projeto de estilo livre no Jenkins.

    • Na página Configurar, selecione Adicionar etapa de compilação e, depois, selecione Executar compilação no CodeBuild.

    • Configure a etapa de compilação.

      • Informe os valores de Região, Credenciais e Nome do projeto.

      • Selecione Use Project source (Usar origem do projeto).

      • Salve a configuração e execute uma compilação a partir do Jenkins.

  4. Em Source Code Management (Gerenciamento do código de origem), selecione como deseja obter a origem. Você pode precisar instalar o plug-in do GitHub (ou o plug-in do Jenkins do seu provedor de repositório de origem) no servidor do Jenkins.

    • Na página Configure (Configurar), selecione Add build step (Adicionar etapa de compilação), depois selecione Run build on AWS CodeBuild (Executar compilação no &ACB;).

    • Configure a etapa de compilação.

      • Informe os valores de Região, Credenciais e Nome do projeto.

      • Selecione Use Jenkins source (Usar origem do Jenkins).

      • Salve a configuração e execute uma compilação a partir do Jenkins.

Como usar o plug-in do AWS CodeBuild com o plug-in de pipeline do Jenkins
  • Na página de projeto de pipeline do Jenkins, use o gerador de trecho para gerar um script de pipeline que adicione o CodeBuild como uma etapa no pipeline. Ele deve gerar um script semelhante a este:

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