

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 CodeCommit pipeline
<a name="tutorials-codecommit-gitclone"></a>

Você pode escolher a opção de clonagem completa para sua ação CodeCommit de origem em CodePipeline. Use essa opção para permitir o acesso CodeBuild aos metadados do Git na ação de criação do pipeline.

Neste tutorial, você cria um pipeline que acessa seu CodeCommit repositório, usa a opção de clonagem completa para dados de origem e executa uma CodeBuild compilação que clona seu repositório e executa comandos Git para o repositório.

**nota**  
CodeBuild as ações são as únicas ações downstream que suportam o uso de metadados do Git disponíveis com a opção Git clone. Além disso, embora seu funil possa conter ações entre contas, a CodeCommit ação e a CodeBuild ação 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 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.

**Topics**
+ [Pré-requisitos](#tutorials-codecommit-gitclone-prereq)
+ [Etapa 1: Criar um arquivo README](#tutorials-codecommit-gitclone-file)
+ [Etapa 2: Criar seu pipeline e criar o projeto](#tutorials-codecommit-gitclone-pipeline)
+ [Etapa 3: atualizar a política CodeBuild de função de serviço para clonar o repositório](#tutorials-codecommit-gitclone-rolepolicy)
+ [Etapa 4: Visualizar os comandos do repositório na saída da compilação](#tutorials-codecommit-gitclone-view)

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

Antes de começar, você deve criar um CodeCommit repositório na mesma AWS conta e região do seu funil.

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

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

**Para adicionar um arquivo README**

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

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

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-codecommit-gitclone-pipeline"></a>

Nesta seção, você criará um pipeline com as seguintes ações:
+ Um estágio de origem com uma ação CodeCommit de origem.
+ 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 **MyCodeCommitPipeline**.

1. CodePipeline fornece tubulações do tipo V1 e V2, que diferem em características e preço. O tipo V2 é o único tipo que você pode escolher no console. Para ter mais informações, consulte [Pipeline types](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel). Para obter informações sobre preços de CodePipeline, consulte [Preços](https://aws.amazon.com/codepipeline/pricing/).

1. Em **Perfil de serviço**, faça um dos seguintes procedimentos:
   + Escolha **Existing service role (Função de serviço existente)**.
   + Escolha sua função CodePipeline de serviço existente. Esse perfil deve ter a permissão do IAM `codecommit:GetRepository` para a política de perfil de 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. Escolha **Próximo**.

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

   1. Em **Source provider (Provedor de código-fonte)**, selecione **CodeCommit**.

   1. Em **Nome do repositório**, selecione o nome do repositório.

   1. Em **Nome da ramificação**, selecione o nome da ramificação.

   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. 

   Escolha **Próximo**.

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

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

   1. Escolha **Continuar para CodePipeline**. Isso leva você de volta ao CodePipeline console e cria um CodeBuild projeto 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.

   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, em seguida, 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 clonar o repositório
<a name="tutorials-codecommit-gitclone-rolepolicy"></a>

A execução inicial do pipeline falhará porque você precisará atualizar a função CodeBuild de serviço 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 [Adicionar CodeBuild GitClone permissões para ações CodeCommit de origem](troubleshooting.md#codebuild-role-codecommitclone).

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

**Para visualizar a saída da compilação**

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, visualizam o log e executam `git describe --all`. 