Tutorial: Usar o clone completo com uma origem de pipeline do CodeCommit - AWS CodePipeline

Tutorial: Usar o clone completo com uma origem de pipeline do CodeCommit

É possível escolher a opção de clone completo para a ação de origem do CodeCommit no CodePipeline. Use essa opção para permitir que o CodeBuild acesse os metadados do Git na ação de criação de pipeline.

Neste tutorial, você criará um pipeline que acessará o repositório do CodeCommit, usará a opção de clonagem completa para dados de origem e executará uma compilação do CodeBuild que clonará o repositório e executará comandos do Git para o repositório.

nota

As ações do CodeBuild são as únicas ações posteriores compatíveis com o uso de metadados do Git disponíveis com a opção de clone do Git. Além disso, embora o pipeline possa conter ações entre contas, a ação do CodeCommit e a ação do CodeBuild devem estar na mesma conta para que a opção de clonagem completa seja bem-sucedida.

Importante

Como parte da criação de um pipeline, um bucket de artefatos do S3 fornecido pelo cliente será usado pelo CodePipeline para artefatos. (Este bucket não é o mesmo utilizado para uma ação de origem do S3.) Se o bucket de artefatos do S3 estiver em uma conta diferente da conta do pipeline, garanta que o bucket de artefatos do S3 seja de propriedade de Contas da AWS seguras e confiáveis.

Pré-requisitos

Antes de começar, é necessário criar um repositório do CodeCommit na mesma região e conta da AWS do pipeline.

Etapa 1: Criar um arquivo README

Use estas etapas para adicionar um arquivo README ao repositório de origem. O arquivo README fornece um exemplo de arquivo de origem para leitura da ação posterior do CodeBuild.

Para adicionar um arquivo README
  1. Faça login no seu repositório e escolha seu repositório.

  2. Para criar um arquivo, selecione Adicionar arquivo > Criar arquivo. Forneça o nome ao arquivo README.md. e adicione o texto a seguir.

    This is a CodeCommit repository!
  3. Escolha Commit changes (Confirmar alterações).

    Certifique-se de que o arquivo README.md esteja no nível raiz do repositório.

Etapa 2: Criar seu pipeline e criar o projeto

Nesta seção, você criará um pipeline com as seguintes ações:

  • Um estágio de origem com uma ação de origem do CodeCommit.

  • Um estágio de compilação com uma ação de compilação AWS CodeBuild.

Criar um pipeline com o assistente
  1. Faça login no console do CodePipeline em https://console.aws.amazon.com/codesuite/codepipeline.

  2. Na página Welcome (Bem-vindo), Getting started (Conceitos básicos) ou Pipelines, selecione Create pipeline (Criar pipeline).

  3. Na página Etapa 1: Escolher opção de criação, em Opções de criação, selecione a opção Criar pipeline personalizado. Escolha Próximo.

  4. Em Etapa 2: Escolher as configurações do pipeline, em Nome do pipeline, insira MyCodeCommitPipeline.

  5. O CodePipeline disponibiliza pipelines dos tipos V1 e V2, que apresentam características e custos diferentes. O tipo V2 é o único tipo que você pode escolher no console. Para ter mais informações, consulte Pipeline types. Para obter informações sobre preços do CodePipeline, consulte Preços.

  6. Em Perfil de serviço, faça um dos seguintes procedimentos:

    • Escolha Existing service role (Função de serviço existente).

    • Selecione o perfil de serviço do CodePipeline a seguir. Esse perfil deve ter a permissão do IAM codecommit:GetRepository para a política de perfil de serviço. Consulte Adicionar permissões ao perfil de serviço do CodePipeline.

  7. Em Configurações avançadas mantenha os padrões. Escolha Próximo.

  8. Na página Etapa 3: Adicionar etapa de origem, faça o seguinte:

    1. Em Provedor de origem, selecione CodeCommit.

    2. Em Nome do repositório, selecione o nome do repositório.

    3. Em Nome da ramificação, selecione o nome da ramificação.

    4. Assegure-se de que a opção Iniciar o pipeline na alteração do código-fonte esteja selecionada.

    5. Em Formato do artefato de saída, selecione Clone completo para habilitar a opção de clone do Git para o repositório de origem. Somente ações fornecidas pelo CodeBuild podem usar a opção de clone do Git.

    Escolha Próximo.

  9. Em Etapa 4: Adicionar etapa de compilação, faça o seguinte:

    1. Em Build provider (Provedor de compilação), escolha AWS CodeBuild. Permita que Region (Região) seja definida para a região do pipeline.

    2. Escolha Criar projeto.

    3. Em Nome do projeto, insira um nome para esse projeto de compilação.

    4. Em Environment image (Imagem do ambiente), escolha Managed image (Imagem gerenciada). Para Operating system, selecione Ubuntu.

    5. Em Runtime (Tempo de execução), selecione Standard (Padrão). Em Imagem, selecione aws/codebuild/standard:5.0.

    6. Em Service role (Função de serviço), selecione New service role (Nova função de serviço).

      nota

      Anote o nome do perfil de serviço do CodeBuild. Você precisará do nome do perfil para a etapa final deste tutorial.

    7. Em Buildspec, para Build specifications (Especificações da compilação), escolha Insert build commands (Inserir comandos de compilação). Selecione Alternar para editor e cole o seguinte em Comandos de compilação:

      version: 0.2 env: git-credential-helper: yes phases: install: #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions. #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails. runtime-versions: nodejs: 12 # name: version #commands: # - command # - command pre_build: commands: - ls -lt - cat README.md build: commands: - git log | head -100 - git status - ls - git describe --all #post_build: #commands: # - command # - command #artifacts: #files: # - location #name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths
    8. Escolha Continue to CodePipeline (Continuar para CodePipeline). O console do CodePipeline será exibido e será criado um projeto do CodeBuild que use os comandos de criação para configuração. O projeto de criação usa um perfil de serviço para gerenciar permissões de AWS service (Serviço da AWS). Essa etapa pode levar alguns minutos.

    9. Escolha Próximo.

  10. Em Etapa 5: Adicionar etapa de teste, escolha Ignorar etapa de teste e aceite a mensagem de aviso escolhendo Ignorar novamente.

    Escolha Próximo.

  11. Na página Etapa 6: adicionar estágio de implantação, escolha Ignorar estágio de implantação e aceite a mensagem de aviso escolhendo Ignorar novamente. Escolha Próximo.

  12. Em Etapa 7: revisar, escolha Criar pipeline.

Etapa 3: Atualizar a política de perfil de serviço do CodeBuild para clonar o repositório

A execução inicial do pipeline falhará porque você precisa atualizar o perfil de serviço do CodeBuild com permissões para extrair do seu repositório.

Adicione a permissão do IAM codecommit:GitPull à política de perfil de serviço. Para obter instruções sobre como atualizar a política no console do IAM, consulte Adicione permissões do CodeBuild GitClone para ações de origem do CodeCommit.

Etapa 4: Visualizar os comandos do repositório na saída da compilação

Para visualizar a saída da compilação
  1. Quando o perfil de serviço for atualizado com êxito, selecione Tentar novamente no estágio com falha do CodeBuild.

  2. Depois que o pipeline for executado com êxito, no estágio de criação bem-sucedido, selecione Visualizar detalhes.

    Na página de detalhes, selecione a guia Logs. Veja o resultado da criação do CodeBuild. Os comandos geram o valor da variável inserida.

    Os comandos geram o conteúdo do arquivo README.md, listam os arquivos no diretório, clonam o repositório, visualizam o log e executam git describe --all.