

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tutorial: use o clone completo com uma fonte de GitHub pipeline
<a name="tutorials-github-gitclone"></a>

Você pode escolher a opção de clonagem completa para sua ação GitHub de origem em CodePipeline. Use essa opção para executar CodeBuild comandos para metadados do Git na ação de criação do pipeline.

**nota**  
A opção de clonagem completa descrita aqui se refere à especificação de se CodePipeline deve clonar os metadados do repositório, que só podem ser usados por comandos. CodeBuild Para usar um [token de acesso GitHub do usuário](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app) para uso com CodeBuild projetos, siga as etapas aqui para instalar o AWS Conector para GitHub aplicativo e deixe o campo Instalação do aplicativo vazio. CodeConnections usará o token de acesso do usuário para a conexão.



**Importante**  
Como parte da criação de um pipeline, um bucket de artefatos S3 fornecido pelo cliente será usado CodePipeline por for artefacts. (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 seu pipeline, certifique-se de que o bucket de artefatos do S3 Contas da AWS seja de propriedade de quem é seguro e confiável.

Neste tutorial, você criará um pipeline que se conecta ao seu GitHub repositório, usa a opção de clonagem completa para os dados de origem e executa uma CodeBuild compilação que clona seu repositório e executa comandos Git para o repositório.

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

**Topics**
+ [

## Pré-requisitos
](#tutorials-github-gitclone-prereq)
+ [

## Etapa 1: Criar um arquivo README
](#tutorials-github-gitclone-file)
+ [

## Etapa 2: Criar seu pipeline e criar o projeto
](#tutorials-github-gitclone-pipeline)
+ [

## Etapa 3: atualizar a política CodeBuild de função de serviço para usar conexões
](#tutorials-github-gitclone-rolepolicy)
+ [

## Etapa 4: Visualizar os comandos do repositório na saída da compilação
](#tutorials-github-gitclone-view)

## Pré-requisitos
<a name="tutorials-github-gitclone-prereq"></a>

Antes de começar, é necessário fazer o seguinte:
+ Crie um GitHub repositório com sua GitHub conta.
+ Tenha suas GitHub credenciais prontas. Quando você usa o Console de gerenciamento da AWS para configurar uma conexão, você é solicitado a entrar com suas GitHub credenciais. 

## Etapa 1: Criar um arquivo README
<a name="tutorials-github-gitclone-file"></a>

Depois de criar seu GitHub repositório, use essas etapas para adicionar um arquivo README.

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

1. 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!
   ```

1. 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
<a name="tutorials-github-gitclone-pipeline"></a>

Nesta seção, você criará um pipeline com as seguintes ações:
+ Um estágio de origem com uma conexão com seu GitHub repositório e ação.
+ Um estágio de construção com uma ação de AWS CodeBuild construção.

**Criar um pipeline com o assistente**

1. Faça login no CodePipeline console em [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

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

1. 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**.

1. Em **Etapa 2: Escolher as configurações do pipeline**, em **Nome do pipeline**, insira **MyGitHubPipeline**.

1. 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 obter mais informações, consulte [Tipos de pipeline](pipeline-types.md).

1. 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 CodePipeline serviço existente, certifique-se de ter adicionado a permissão do `codestar-connections:UseConnection` IAM à sua política de função de serviço. Para obter instruções sobre a função de CodePipeline serviço, consulte [Adicionar permissões à função CodePipeline de serviço](https://docs.aws.amazon.com/codepipeline/latest/userguide/security-iam.html#how-to-update-role-new-services).

1. 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**.

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

   1. Em **Provedor de origem**, escolha **GitHub (via GitHub aplicativo)**.

   1. Em **Conexão**, escolha uma conexão existente ou crie uma nova. Para criar ou gerenciar uma conexão para sua ação GitHub de origem, consulte[GitHub conexões](connections-github.md). 

      Você instala uma aplicação para todas as suas conexões com um provedor específico. Se você já instalou o GitHub aplicativo AWS Connector for, escolha-o e pule esta etapa.
**nota**  
Se você quiser criar um [token de acesso de usuário](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app), verifique se já instalou o AWS Connector for GitHub app e deixe o campo de instalação do aplicativo vazio. CodeConnections usará o token de acesso do usuário para a conexão. Para obter mais informações, consulte [Acessar seu provedor de origem em CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/access-tokens.html).

   1. Em **Repository name (Nome do repositório)**, selecione o nome do seu repositório do GitHub.

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

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

   1. 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 as ações fornecidas pelo CodeBuild podem usar a opção de clonagem do Git. Você usará [Etapa 3: atualizar a política CodeBuild de função de serviço para usar conexões](#tutorials-github-gitclone-rolepolicy) neste tutorial para atualizar as permissões da sua função de serviço CodeBuild do projeto para usar essa opção.

   Escolha **Próximo**.

1. Em **Etapa 4: Adicionar etapa 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.

   1. Escolha **Criar projeto**.

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

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

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

   1. Em **Service role (Função de serviço)**, selecione **New service role (Nova função de serviço)**.
**nota**  
Anote o nome da sua função CodeBuild de serviço. Você precisará do nome do perfil para a etapa final deste tutorial.

   1. 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
      ```

   1. Escolha **Continuar para CodePipeline**. Isso retorna ao CodePipeline console e cria um CodeBuild projeto que usa seus comandos de construção para configuração. O projeto de compilação usa uma função de serviço para gerenciar AWS service (Serviço da AWS) permissões. Essa etapa pode levar alguns minutos.

   1. Escolha **Próximo**.

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

   Escolha **Próximo**.

1. 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**.

1. Na **Etapa 7: Revisão**, escolha **Criar funil**.

## Etapa 3: atualizar a política CodeBuild de função de serviço para usar conexões
<a name="tutorials-github-gitclone-rolepolicy"></a>

A execução inicial do pipeline falhará porque a função de CodeBuild serviço deve ser atualizada 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 CodeBuild GitClone permissões para conexões com o Bitbucket GitHub, GitHub Enterprise Server ou .com GitLab](troubleshooting.md#codebuild-role-connections).

## Etapa 4: Visualizar os comandos do repositório na saída da compilação
<a name="tutorials-github-gitclone-view"></a>

1. Quando sua função de serviço for atualizada com êxito, escolha **Tentar novamente** no CodeBuild estágio de falha.

1. 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 a saída da CodeBuild compilação. 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.