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

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

É possível selecionar a opção de clone completo para a ação de origem do GitHub no CodePipeline. Use essa opção para executar comandos do CodeBuild para metadados do Git em sua ação de compilação de pipeline.

nota

A opção de clonagem completa mencionada aqui diz respeito a definir se o CodePipeline deve clonar os metadados do repositório, os quais só podem ser utilizados pelos comandos do CodeBuild. Para utilizar um token de acesso de usuário do GitHub com projetos do CodeBuild, siga as instruções aqui para instalar a aplicação de conector da AWS para GitHub, depois deixe o campo Instalação da aplicação vazio. O CodeConnections usará o token de acesso de usuário para a conexão.

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.

Neste tutorial, você vai criar um pipeline que se conectará ao repositório do GitHub, usará a opção de clone completo para dados de origem e executará uma compilação do CodeBuild que vai clonar o repositório e executar comandos do Git para o repositório.

nota

Esse recurso não está disponível nas seguintes regiões: Ásia-Pacífico (Hong Kong), África (Cidade do Cabo), Oriente Médio (Bahrein), Europa (Zurique) e AWS GovCloud (Oeste dos EUA). Para fazer referência a outras ações disponíveis, consulte Integrações de produtos e serviços com o CodePipeline. Para considerações sobre essa ação na região Europa (Milão), consulte a nota em CodeStarSourceConnection para ações gerenciadas do Bitbucket Cloud, do GitHub, do GitHub Enterprise Server, do GitLab.com e do GitLab.

Pré-requisitos

Antes de começar, é necessário fazer o seguinte:

  • Crie um repositório do GitHub com sua conta do GitHub.

  • Tenha suas credenciais do GitHub em mãos. Ao usar o AWS Management Console para configurar uma conexão, você é avisado para fazer login com suas credenciais do GitHub.

Etapa 1: Criar um arquivo README

Depois de criar o repositório do GitHub, use estas etapas para adicionar um arquivo README.

  1. Faça login no seu repositório do GitHub e escolha seu repositório.

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

    This is a GitHub 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 conexão com seu repositório do GitHub e ação.

  • 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 MyGitHubPipeline.

  5. Em Tipo de pipeline, selecione V1 para os fins deste tutorial. Também é possível selecionar V2; no entanto, observe que os tipos de pipeline diferem em características e preços. Para ter mais informações, consulte Tipos de pipeline.

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

    nota

    Se você optar por usar sua função de serviço do CodePipeline existente, certifique-se de ter adicionado a permissão do IAM codestar-connections:UseConnection à sua política de função de serviço. Para obter instruções sobre a função de serviço do CodePipeline, consulte Adicionar permissões à função de serviço do CodePipeline.

  7. Em Configurações avançadas mantenha os padrões. Em Artifact store (Armazenamento de artefatos), selecione Default location (Local padrão) para usar o armazenamento de artefatos padrão, como o bucket de artefatos do Amazon S3 designado como padrão, para o pipeline na região que você selecionou.

    nota

    Este não é o bucket de origem para seu código-fonte. Este é o armazenamento de artefatos para o pipeline. Um armazenamento de artefatos separado, como um bucket do S3, é necessário para cada pipeline.

    Escolha Próximo.

  8. Na página Etapa 3: Adicionar etapa de origem, adicione uma etapa de origem:

    1. Em Provedor de origem, escolha GitHub (Versão 2).

    2. Em Conexão, escolha uma conexão existente ou crie uma nova. Para criar ou gerenciar uma conexão para sua ação de origem do GitHub, consulte Conexões do GitHub.

      Você instala uma aplicação para todas as suas conexões com um provedor específico. Se você já instalou a aplicação AWS Connector para GitHub, selecione-a e ignore esta etapa.

      nota

      Se quiser criar um token de acesso de usuário, verifique se já instalou a aplicação de conector da AWS para GitHub e deixe o campo Instalação da aplicação vazio. O CodeConnections usará o token de acesso de usuário para a conexão. Para ter mais informações, consulte Access your source provider in CodeBuild.

    3. Em Nome do repositório, selecione o nome do seu repositório do GitHub.

    4. Em Nome da ramificação, selecione a ramificação do repositório que você deseja usar.

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

    6. 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. Você usará Etapa 3: Atualizar a política de perfil do serviço do CodeBuild para usar conexões neste tutorial para atualizar as permissões para o perfil de serviço do projeto do CodeBuild usar essa opção.

    Escolha Próximo.

  9. Em Add build stage (Adicionar estágio de compilação), adicione um estágio de compilação:

    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 Project name (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 o editor e cole o seguinte em Comandos de compilação.

      nota

      Na seção env da especificação de compilação, o assistente de credenciais para comandos do git deve estar habilitado conforme mostrado neste exemplo.

      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 archive --format=zip HEAD > application.zip #post_build: #commands: # - command # - command artifacts: files: - application.zip # - location #name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths
    8. Escolha Continue to CodePipeline (Continuar para CodePipeline). Isso retornará para o console do CodePipeline e criará um projeto do CodeBuild que usa seus comandos de compilaçã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. Na página Etapa 5: 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.

  11. Em Etapa 6: revisar, escolha Criar pipeline.

Etapa 3: Atualizar a política de perfil do serviço do CodeBuild para usar conexões

A execução inicial do pipeline falhará porque o perfil de serviço do CodeBuild deve ser atualizado com permissões para usar conexões. Adicione a permissão do IAM codestar-connections:UseConnection à 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 conexões com o Bitbucket, o GitHub, o GitHub Enterprise Server ou o GitLab.com.

Etapa 4: Visualizar os comandos do repositório na 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, exibem o log e arquivam o repositório como um arquivo ZIP.