

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

# Amostras de repositórios de origem de terceiros para CodeBuild
<a name="sample-third-party-source"></a>

Esta seção descreve exemplos de integrações entre repositórios de origem de terceiros e. CodeBuild


| Amostra | Description | 
| --- | --- | 
|  BitBucket amostra de pull request e filtro de webhook — consulte [Execute a amostra “Solicitação de pull e filtro de webhook do Bitbucket” para CodeBuild](sample-bitbucket-pull-request.md)  |  Este exemplo mostra como criar uma solicitação usando um repositório do Bitbucket. Ele também mostra como usar um Bitbucket webhook para acionar CodeBuild para criar uma compilação de um projeto.  | 
|  GitHub Exemplo de servidor corporativo — consulte [Execute a amostra do GitHub Enterprise Server para CodeBuild](sample-github-enterprise.md)  |  Este exemplo mostra como configurar seus CodeBuild projetos quando o repositório do GitHub Enterprise Server tem um certificado instalado. Também mostra como habilitar webhooks para que CodeBuild reconstrua o código-fonte toda vez que uma alteração de código for enviada ao seu GitHub repositório do Enterprise Server.  | 
|  GitHub amostra de pull request e filtro de webhook — consulte [Execute a solicitação GitHub pull e a amostra do filtro de webhook para CodeBuild](sample-github-pull-request.md)  |  Este exemplo mostra como criar uma pull request usando um repositório do GitHub Enterprise Server. Também mostra como habilitar webhooks para que CodeBuild reconstrua o código-fonte toda vez que uma alteração de código for enviada ao seu GitHub repositório do Enterprise Server.  | 

# Execute a amostra “Solicitação de pull e filtro de webhook do Bitbucket” para CodeBuild
<a name="sample-bitbucket-pull-request"></a>

AWS CodeBuild suporta webhooks quando o repositório de origem é o Bitbucket. Isso significa que, para um projeto de CodeBuild compilação que tem seu código-fonte armazenado em um repositório do Bitbucket, os webhooks podem ser usados para reconstruir o código-fonte toda vez que uma alteração de código é enviada para o repositório. Para obter mais informações, consulte [Filtrar eventos de webhook do Bitbucket](bitbucket-webhook.md). 

Este exemplo mostra como criar uma solicitação usando um repositório do Bitbucket. Também mostra como usar um webhook do Bitbucket para acionar CodeBuild a criação de uma compilação de um projeto.

**nota**  
Ao usar webhooks, é possível que um usuário acione uma compilação inesperada. Para atenuar esse risco, consulte [Práticas recomendadas para usar webhooks](webhooks.md#webhook-best-practices).

**Topics**
+ [Pré-requisitos](#sample-bitbucket-pull-request-prerequisites)
+ [Etapa 1: criar um projeto de compilação com o Bitbucket e habilitar os webhooks](#sample-bitbucket-pull-request-create)
+ [Etapa 2: acionar uma compilação com um webhook do Bitbucket](#sample-bitbucket-pull-request-trigger)

## Pré-requisitos
<a name="sample-bitbucket-pull-request-prerequisites"></a>

 Para executar essa amostra, você deve conectar seu AWS CodeBuild projeto à sua conta do Bitbucket. 

**nota**  
 CodeBuild atualizou suas permissões com o Bitbucket. Se você conectou seu projeto anteriormente ao Bitbucket e agora recebe um erro de conexão do Bitbucket, você deve se reconectar para conceder CodeBuild permissão para gerenciar seus webhooks. 

## Etapa 1: criar um projeto de compilação com o Bitbucket e habilitar os webhooks
<a name="sample-bitbucket-pull-request-create"></a>

 As etapas a seguir descrevem como criar um AWS CodeBuild projeto com o Bitbucket como repositório de origem e habilitar webhooks. 

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Se uma página de CodeBuild informações for exibida, escolha **Criar projeto de construção**. Caso contrário, no painel de navegação, expanda **Compilar**, escolha **Projetos de compilação** e, depois, **Criar projeto de compilação**. 

1. Selecione **Create build project (Criar projeto de compilação)**. 

1. Em **Configuração de projetos**:  
**Nome do projeto**  
Insira um nome para esse projeto de compilação. Os nomes dos projetos de criação devem ser exclusivos em cada AWS conta. Também é possível incluir uma descrição opcional do projeto de compilação para ajudar outros usuários a entender para que esse projeto é usado.

1. Em **Origem**:  
**Provedor de origem**  
Selecione **Bitbucket**. Siga as instruções para se conectar (ou se reconectar) ao Bitbucket e depois escolha **Autorizar**.  
**Repositório**  
Escolha **Repositório em minha conta Bitbucket**.  
Se você ainda não se conectou à conta do Bitbucket, insira o nome de usuário e senha do aplicativo do Bitbucket e selecione **Salvar credenciais do Bitbucket**.  
**Repositório do Bitbucket**  
Insira o URL do repositório do Bitbucket.

1. Em **Eventos de webhook da origem principal**, selecione o seguinte. 
**nota**  
A seção **Eventos de webhook da origem principal** só estará visível se você escolheu **Repositório em minha conta Bitbucket** na etapa anterior.

   1. Selecione **Rebuild every time a code change is pushed to this repository (Recompilar toda vez que uma alteração de código for enviada para este repositório)** ao criar seu projeto. 

   1. Em **Event type (Tipo de evento)**, escolha um ou mais eventos. 

   1. Para filtrar quando um evento aciona uma compilação, em **Start a build under these conditions (Iniciar uma compilação sob estas condições)**, adicione um ou mais filtros opcionais. 

   1. Para filtrar quando um evento não é acionado, em **Don't start a build under these conditions (Não iniciar uma compilação sob estas condições)**, adicione um ou mais filtros opcionais. 

   1. Escolha **Adicionar grupo de filtros** para adicionar outro grupo de filtros, se necessário. 

   Para obter mais informações sobre os tipos e os filtros de eventos de webhook do Bitbucket, consulte [Filtrar eventos de webhook do Bitbucket](bitbucket-webhook.md).

1. Em **Ambiente**:  
**Imagem do ambiente**  
Escolha uma das seguintes opções:    
Para usar uma imagem do Docker gerenciada por: AWS CodeBuild  
Selecione **Imagem gerenciada** e, depois, faça as seleções em **Sistema operacional**, **Runtime(s)**, **Imagem** e **Versão da imagem**. Faça uma seleção em **Environment type (Tipo de ambiente)** se estiver disponível.  
Para usar outra imagem do Docker:  
Selecione **Imagem personalizada**. Em **Tipo de ambiente**, selecione **ARM**, **Linux**, **Linux GPU** ou **Windows**. Se você selecionar **Other registry (Outro registro)**, em **External registry URL (URL de registro externo)**, insira o nome e a tag da imagem do Docker no Docker Hub usando o formato `docker repository/docker image name`. Se você escolher o **Amazon ECR**, use o **repositório Amazon ECR e** a imagem do **Amazon ECR para escolher a imagem** do Docker em sua conta. AWS   
Para usar uma imagem privada do Docker:  
Selecione **Imagem personalizada**. Em **Tipo de ambiente**, selecione **ARM**, **Linux**, **Linux GPU** ou **Windows**. Em **Image registry (Registro da imagem)**, selecione **Other registry (Outro registro)** e insira o ARN das credenciais da imagem privada do Docker. As credenciais devem ser criadas pelo Secrets Manager. Para obter mais informações, consulte [O que é AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) no *Guia do AWS Secrets Manager usuário*.  
**Perfil de serviço**  
Escolha uma das seguintes opções:  
   + Se você não tiver uma função CodeBuild de serviço, escolha **Nova função de serviço**. No campo **Role name**, digite o nome da nova função.
   + Se você tiver uma função CodeBuild de serviço, escolha **Função de serviço existente**. Em **ARN do perfil**, escolha o perfil de serviço.
Ao usar o console para criar ou atualizar um projeto de compilação, você pode criar uma função de CodeBuild serviço ao mesmo tempo. Por padrão, a função funciona somente com esse projeto de build. Se você usar o console para associar essa função de serviço a outro projeto de compilação, a função será atualizada para funcionar com os outros projetos de compilação. Uma função de serviço pode funcionar com até 10 projetos de compilação.

1. Em **Buildspec**, siga um destes procedimentos:
   + Escolha **Usar um arquivo buildspec** para usar o arquivo buildspec.yml no diretório raiz do código-fonte.
   + Selecione **Inserir comandos de compilação** para usar o console para inserir comandos de compilação.

   Para obter mais informações, consulte o [Referência de buildspec](build-spec-ref.md).

1. Em **Artefatos**:  
**Tipo**  
Escolha uma das seguintes opções:  
   + Se você não quiser criar artefatos de saída de compilação, selecione **Nenhum artefato**.
   + Para armazenar a saída de compilação em um bucket do S3, escolha **Amazon S3** e faça o seguinte:
     + Se você quiser usar o nome do projeto para a pasta ou arquivo ZIP de saída da compilação, deixe **Name (Nome)** em branco. Caso contrário, insira o nome. Por padrão, o nome do artefato é o nome do projeto. Se você quiser usar um nome diferente, insira-o na caixa de nome do artefato. Se você quiser gerar um arquivo ZIP, inclua a extensão zip.
     + Para **Bucket name**, selecione o nome do bucket de saída.
     + Se você tiver escolhido **Inserir comandos de compilação** anteriormente neste procedimento, em **Arquivos de saída**, insira os locais dos arquivos da compilação que deseja incluir na pasta ou no arquivo ZIP de saída da compilação. Para vários locais, separe-os com uma vírgula (por exemplo, `appspec.yml, target/my-app.jar`). Para obter mais informações, consulte a descrição de `files` em [Sintaxe de buildspec](build-spec-ref.md#build-spec-ref-syntax).  
**Configuração adicional**  
Expanda **Configuração adicional** e defina as opções conforme apropriado.

1. Selecione **Create build project (Criar projeto de compilação)**. Na página **Revisão**, escolha **Iniciar compilação** para executar a compilação.

## Etapa 2: acionar uma compilação com um webhook do Bitbucket
<a name="sample-bitbucket-pull-request-trigger"></a>

Para um projeto que usa webhooks do Bitbucket, AWS CodeBuild cria uma compilação quando o repositório do Bitbucket detecta uma alteração no seu código-fonte. 

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. No painel de navegação, escolha **Build projects (Projetos de compilação)** e, em seguida, escolha um projeto associado a um repositório de Bitbucket com webhooks. Para obter informações sobre como criar um projeto de webhook do Bitbucket, consulte [Etapa 1: criar um projeto de compilação com o Bitbucket e habilitar os webhooks](#sample-bitbucket-pull-request-create). 

1. Faça algumas alterações no código no repositório do Bitbucket do seu projeto. 

1. Criar uma solicitação em seu repositório do Bitbucket. Para obter mais informações, consulte [Making a pull request](https://www.atlassian.com/git/tutorials/making-a-pull-request). 

1. Na página Webhooks do Bitbucket, escolha **View request (Visualizar solicitação)** para ver uma lista de eventos recentes. 

1. Escolha **Exibir detalhes** para ver detalhes sobre a resposta retornada por CodeBuild. A aparência pode ser semelhante a esta: 

   ```
   "response":"Webhook received and build started: https://us-east-1.console.aws.amazon.com/codebuild/home..."
   "statusCode":200
   ```

1. Navegue até a página de solicitação de Bitbucket para ver o status da compilação. 

# Execute a amostra do GitHub Enterprise Server para CodeBuild
<a name="sample-github-enterprise"></a>

AWS CodeBuild suporta o GitHub Enterprise Server como um repositório de origem. Este exemplo mostra como configurar seus CodeBuild projetos quando o repositório do GitHub Enterprise Server tem um certificado instalado. Também mostra como habilitar webhooks para que CodeBuild reconstrua o código-fonte toda vez que uma alteração de código for enviada ao seu GitHub repositório do Enterprise Server.

**Topics**
+ [Pré-requisitos](#sample-github-enterprise-prerequisites)
+ [Etapa 1: criar um projeto de compilação com o GitHub Enterprise Server e habilitar webhooks](#sample-github-enterprise-running)

## Pré-requisitos
<a name="sample-github-enterprise-prerequisites"></a>

1. Gere um token de acesso pessoal para seu CodeBuild projeto. Recomendamos que você crie um usuário GitHub corporativo e gere um token de acesso pessoal para esse usuário. Copie-o para sua prancheta para que possa ser usado ao criar seu CodeBuild projeto. Para obter mais informações, consulte [Criação de um token de acesso pessoal para a linha de comando](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) no site da GitHub Ajuda.

   Ao criar o token de acesso pessoal, inclua o escopo do **repositório** na definição.  
![\[O escopo do repositório na definição.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/scopes.png)

1. Baixe seu certificado do GitHub Enterprise Server. CodeBuild usa o certificado para criar uma conexão SSL confiável com o repositório.

   **Clientes do Linux/macOS:**

   Na janela de terminal do , execute o seguinte comando:

   ```
   echo -n | openssl s_client -connect HOST:PORTNUMBER \
       | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /folder/filename.pem
   ```

   Substitua os espaços reservados no comando pelos seguintes valores:

   *HOST*. O endereço IP do seu repositório do GitHub Enterprise Server.

   *PORTNUMBER*. O número da porta que você está usando para se conectar (por exemplo, 443).

   *folder*. A pasta em que você baixou seu certificado.

   *filename*. O nome do arquivo do seu certificado.
**Importante**  
Salve o certificado como um arquivo .pem.

   **Clientes no Windows:**

   Use seu navegador para baixar seu certificado do GitHub Enterprise Server. Para ver os detalhes do certificado do site, escolha o ícone de cadeado. Para obter informações sobre como exportar o certificado, consulte a documentação do navegador.
**Importante**  
Salve o certificado como um arquivo .pem.

1. Faça upload do arquivo do certificado para um bucket do S3. Para obter informações sobre como criar um bucket do S3, consulte [Como criar um bucket do S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) Para obter informações sobre como fazer upload de objetos para um bucket do S3, consulte [Como fazer upload de arquivos e pastas para um bucket?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)
**nota**  
Esse bucket deve estar na mesma AWS região das suas compilações. Por exemplo, se você CodeBuild instruir a execução de uma compilação na região Leste dos EUA (Ohio), o bucket deverá estar na região Leste dos EUA (Ohio).

## Etapa 1: criar um projeto de compilação com o GitHub Enterprise Server e habilitar webhooks
<a name="sample-github-enterprise-running"></a>

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Se uma página de CodeBuild informações for exibida, escolha **Criar projeto de construção**. Caso contrário, no painel de navegação, expanda **Compilar**, escolha **Projetos de compilação** e, depois, **Criar projeto de compilação**. 

1. Em **Nome do projeto**, insira um nome para esse projeto de compilação. Os nomes dos projetos de criação devem ser exclusivos em cada AWS conta. Também é possível incluir uma descrição opcional do projeto de compilação para ajudar outros usuários a entender para que esse projeto é usado.

1. Em **Origem**, em **Provedor de origem**, escolha **Servidor GitHub corporativo**.
   + Escolha **Gerenciar credenciais da conta** e **Token de acesso pessoal**. Em **Service**, escolha **Secrets Manager (recomendado)** e configure o segredo. Em seguida**, em Token de acesso pessoal GitHub corporativo**, insira seu token de acesso pessoal e escolha **Salvar**.
   + Em **Repository URL (URL do repositório)**, insira o caminho para o seu repositório, incluindo o nome do repositório.
   + Expanda **Configuração Adicional**.
   + Selecione **Rebuild every time a code change is pushed to this repository** para recompilar toda vez que uma alteração de código for enviada para esse repositório.
   + Selecione **Habilitar SSL inseguro** para ignorar os avisos de SSL enquanto você se conecta ao seu repositório de projetos do GitHub Enterprise Server.
**nota**  
Recomendamos usar **Enable insecure SSL** somente para teste. Ele não deve ser usado em um ambiente de produção.  
![\[A configuração do repositório do projeto GitHub Enterprise Server.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/github-enterprise.png)

1. Em **Ambiente**:

   Para **Imagem do ambiente**, faça um dos seguintes procedimentos:
   + Para usar uma imagem do Docker gerenciada por AWS CodeBuild, escolha **Imagem gerenciada** e, em seguida, faça seleções em **Sistema operacional**, **Tempo de execução (s)**, **Imagem e Versão da** **imagem**. Faça uma seleção em **Environment type (Tipo de ambiente)** se estiver disponível.
   + Para usar outra imagem do Docker, selecione **Custom image (Imagem personalizada)**. Em **Tipo de ambiente**, selecione **ARM**, **Linux**, **Linux GPU** ou **Windows**. Se você selecionar **Other registry (Outro registro)**, em **External registry URL (URL de registro externo)**, insira o nome e a tag da imagem do Docker no Docker Hub usando o formato `docker repository/docker image name`. Se você escolher o **Amazon ECR**, use o **repositório Amazon ECR e** a imagem do **Amazon ECR para escolher a imagem** do Docker em sua conta. AWS 
   + Para usar uma imagem privada do Docker, selecione **Imagem personalizada**. Em **Tipo de ambiente**, selecione **ARM**, **Linux**, **Linux GPU** ou **Windows**. Em **Image registry (Registro da imagem)**, selecione **Other registry (Outro registro)** e insira o ARN das credenciais da imagem privada do Docker. As credenciais devem ser criadas pelo Secrets Manager. Para obter mais informações, consulte [O que é o AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) no *Guia do usuário do AWS Secrets Manager *.

1. Em **Perfil de serviço**, faça um dos seguintes procedimentos:
   + Se você não tiver uma função CodeBuild de serviço, escolha **Nova função de serviço**. No campo **Role name**, digite o nome da nova função.
   + Se você tiver uma função CodeBuild de serviço, escolha **Função de serviço existente**. Em **ARN do perfil**, escolha o perfil de serviço.
**nota**  
Ao usar o console para criar ou atualizar um projeto de compilação, você pode criar uma função de CodeBuild serviço ao mesmo tempo. Por padrão, a função funciona somente com esse projeto de build. Se você usar o console para associar essa função de serviço a outro projeto de compilação, a função será atualizada para funcionar com os outros projetos de compilação. Uma função de serviço pode funcionar com até 10 projetos de compilação.

1. Expanda **Configuração Adicional**.

   Se você quiser CodeBuild trabalhar com sua VPC:
   + Para **VPC**, escolha a ID da VPC que usa. CodeBuild 
   + Para sub-redes **VPC, escolha as sub-redes** que incluem os recursos que usa. CodeBuild 
   + Para **grupos de segurança da VPC**, escolha os grupos de segurança CodeBuild usados para permitir o acesso aos recursos no. VPCs

   Para obter mais informações, consulte [Use AWS CodeBuild com a Amazon Virtual Private Cloud](vpc-support.md).

1. Em **Buildspec**, siga um destes procedimentos:
   + Escolha **Usar um arquivo buildspec** para usar o arquivo buildspec.yml no diretório raiz do código-fonte.
   + Selecione **Inserir comandos de compilação** para usar o console para inserir comandos de compilação.

   Para obter mais informações, consulte o [Referência de buildspec](build-spec-ref.md).

1. Em **Artefatos**, para **Tipo**, faça um dos seguintes procedimentos:
   + Se você não quiser criar artefatos de saída de compilação, selecione **Nenhum artefato**.
   + Para armazenar a saída de compilação em um bucket do S3, escolha **Amazon S3** e faça o seguinte:
     + Se você quiser usar o nome do projeto para a pasta ou arquivo ZIP de saída da compilação, deixe **Name (Nome)** em branco. Caso contrário, insira o nome. Por padrão, o nome do artefato é o nome do projeto. Se você quiser usar um nome diferente, insira-o na caixa de nome do artefato. Se você quiser gerar um arquivo ZIP, inclua a extensão zip.
     + Para **Bucket name**, selecione o nome do bucket de saída.
     + Se você tiver escolhido **Inserir comandos de compilação** anteriormente neste procedimento, em **Arquivos de saída**, insira os locais dos arquivos da compilação que deseja incluir na pasta ou no arquivo ZIP de saída da compilação. Para vários locais, separe-os com uma vírgula (por exemplo, `appspec.yml, target/my-app.jar`). Para obter mais informações, consulte a descrição de `files` em [Sintaxe de buildspec](build-spec-ref.md#build-spec-ref-syntax).

1. Em **Cache type (Tipo de cache)**, selecione uma das seguintes opções:
   + Se não quiser usar um cache, escolha **No cache**.
   + Se você quiser um cache do Amazon S3, selecione **Amazon S3** e faça o seguinte:
     + Em **Bucket**, escolha o nome do bucket do S3 onde o cache está armazenado.
     + (Opcional) Em **Prefixo do caminho do cache**, insira um prefixo de caminho do Amazon S3. O valor **Cache path prefix (Prefixo do caminho do cache)** é semelhante ao nome de um diretório. Ele permite que você armazene o cache em um bucket no mesmo diretório. 
**Importante**  
Não acrescente uma barra (/) ao final do prefixo do caminho.
   +  Se você quiser usar um cache local, selecione **Local** e depois selecione um ou mais modos de cache local. 
**nota**  
O modo de cache de camada do Docker está disponível apenas para o Linux. Se optar por esse modo, o projeto deverá ser executado no modo privilegiado. 

   O uso do cache economiza um tempo de compilação considerável porque as partes reutilizáveis do ambiente de compilação são armazenadas no cache e usadas em diferentes compilações. Para obter informações sobre como especificar um cache no arquivo de especificação de compilação, consulte [Sintaxe de buildspec](build-spec-ref.md#build-spec-ref-syntax). Para obter mais informações sobre armazenamento em cache, consulte [Compilações em cache para melhorar o desempenho](build-caching.md). 

1. Selecione **Create build project (Criar projeto de compilação)**. Na página de projeto da compilação, escolha **Start build (Iniciar compilação)**.

# Execute a solicitação GitHub pull e a amostra do filtro de webhook para CodeBuild
<a name="sample-github-pull-request"></a>

AWS CodeBuild suporta webhooks quando o repositório de origem está. GitHub Isso significa que, para um projeto de CodeBuild compilação que tem seu código-fonte armazenado em um GitHub repositório, os webhooks podem ser usados para reconstruir o código-fonte toda vez que uma alteração de código é enviada para o repositório. Para obter CodeBuild amostras, consulte [AWS CodeBuild Amostras](https://github.com/aws-samples/aws-codebuild-samples).

**nota**  
Ao usar webhooks, é possível que um usuário acione uma compilação inesperada. Para atenuar esse risco, consulte [Práticas recomendadas para usar webhooks](webhooks.md#webhook-best-practices).

**Topics**
+ [Etapa 1: criar um projeto de compilação com GitHub webhooks e ativá-los](#sample-github-pull-request-running)
+ [Etapa 2: verificar se os webhooks estão habilitados](#verification-checks)

## Etapa 1: criar um projeto de compilação com GitHub webhooks e ativá-los
<a name="sample-github-pull-request-running"></a>

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Se uma página de CodeBuild informações for exibida, escolha **Criar projeto de construção**. Caso contrário, no painel de navegação, expanda **Compilar**, escolha **Projetos de compilação** e, depois, **Criar projeto de compilação**. 

1. Selecione **Create build project (Criar projeto de compilação)**. 

1. Em **Configuração de projetos**:  
**Nome do projeto**  
Insira um nome para esse projeto de compilação. Os nomes dos projetos de criação devem ser exclusivos em cada AWS conta. Também é possível incluir uma descrição opcional do projeto de compilação para ajudar outros usuários a entender para que esse projeto é usado.

1. Em **Origem**:  
**Provedor de origem**  
Selecione **GitHub**. Siga as instruções para se conectar (ou reconectar) GitHub e escolha **Autorizar**.  
**Repositório**  
Escolha **Repositório em minha GitHub conta.**  
**GitHub repositório**  
Insira a URL do seu GitHub repositório.

1. Em **Eventos de webhook da origem principal**, selecione o seguinte.
**nota**  
A seção **Eventos de webhook de origem primária** só estará visível se você escolher **Repositório em minha GitHub conta** na etapa anterior.

   1. Selecione **Rebuild every time a code change is pushed to this repository (Recompilar toda vez que uma alteração de código for enviada para este repositório)** ao criar seu projeto. 

   1. Em **Event type (Tipo de evento)**, escolha um ou mais eventos. 

   1. Para filtrar quando um evento aciona uma compilação, em **Start a build under these conditions (Iniciar uma compilação sob estas condições)**, adicione um ou mais filtros opcionais. 

   1. Para filtrar quando um evento não é acionado, em **Don't start a build under these conditions (Não iniciar uma compilação sob estas condições)**, adicione um ou mais filtros opcionais. 

   1. Escolha **Adicionar grupo de filtros** para adicionar outro grupo de filtros, se necessário. 

   Para obter mais informações sobre filtros e tipos de eventos de GitHub webhook, consulte[GitHub eventos de webhook](github-webhook.md).

1. Em **Ambiente**:  
**Imagem do ambiente**  
Escolha uma das seguintes opções:    
Para usar uma imagem do Docker gerenciada por: AWS CodeBuild  
Selecione **Imagem gerenciada** e, depois, faça as seleções em **Sistema operacional**, **Runtime(s)**, **Imagem** e **Versão da imagem**. Faça uma seleção em **Environment type (Tipo de ambiente)** se estiver disponível.  
Para usar outra imagem do Docker:  
Selecione **Imagem personalizada**. Em **Tipo de ambiente**, selecione **ARM**, **Linux**, **Linux GPU** ou **Windows**. Se você selecionar **Other registry (Outro registro)**, em **External registry URL (URL de registro externo)**, insira o nome e a tag da imagem do Docker no Docker Hub usando o formato `docker repository/docker image name`. Se você escolher **Amazon ECR**, use **Repositório do Amazon ECR** e **Imagem do Amazon ECR** para selecionar a imagem do Docker na conta da AWS .  
Para usar uma imagem privada do Docker:  
Selecione **Imagem personalizada**. Em **Tipo de ambiente**, selecione **ARM**, **Linux**, **Linux GPU** ou **Windows**. Em **Image registry (Registro da imagem)**, selecione **Other registry (Outro registro)** e insira o ARN das credenciais da imagem privada do Docker. As credenciais devem ser criadas pelo Secrets Manager. Para obter mais informações, consulte [O que é AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) no *Guia do AWS Secrets Manager usuário*.  
**Perfil de serviço**  
Escolha uma das seguintes opções:  
   + Se você não tiver uma função CodeBuild de serviço, escolha **Nova função de serviço**. No campo **Role name**, digite o nome da nova função.
   + Se você tiver uma função CodeBuild de serviço, escolha **Função de serviço existente**. Em **ARN do perfil**, escolha o perfil de serviço.
Ao usar o console para criar ou atualizar um projeto de compilação, você pode criar uma função de CodeBuild serviço ao mesmo tempo. Por padrão, a função funciona somente com esse projeto de build. Se você usar o console para associar essa função de serviço a outro projeto de compilação, a função será atualizada para funcionar com os outros projetos de compilação. Uma função de serviço pode funcionar com até 10 projetos de compilação.

1. Em **Buildspec**, siga um destes procedimentos:
   + Escolha **Usar um arquivo buildspec** para usar o arquivo buildspec.yml no diretório raiz do código-fonte.
   + Selecione **Inserir comandos de compilação** para usar o console para inserir comandos de compilação.

   Para obter mais informações, consulte o [Referência de buildspec](build-spec-ref.md).

1. Em **Artefatos**:  
**Tipo**  
Escolha uma das seguintes opções:  
   + Se você não quiser criar artefatos de saída de compilação, selecione **Nenhum artefato**.
   + Para armazenar a saída de compilação em um bucket do S3, escolha **Amazon S3** e faça o seguinte:
     + Se você quiser usar o nome do projeto para a pasta ou arquivo ZIP de saída da compilação, deixe **Name (Nome)** em branco. Caso contrário, insira o nome. Por padrão, o nome do artefato é o nome do projeto. Se você quiser usar um nome diferente, insira-o na caixa de nome do artefato. Se você quiser gerar um arquivo ZIP, inclua a extensão zip.
     + Para **Bucket name**, selecione o nome do bucket de saída.
     + Se você tiver escolhido **Inserir comandos de compilação** anteriormente neste procedimento, em **Arquivos de saída**, insira os locais dos arquivos da compilação que deseja incluir na pasta ou no arquivo ZIP de saída da compilação. Para vários locais, separe-os com uma vírgula (por exemplo, `appspec.yml, target/my-app.jar`). Para obter mais informações, consulte a descrição de `files` em [Sintaxe de buildspec](build-spec-ref.md#build-spec-ref-syntax).  
**Configuração adicional**  
Expanda **Configuração adicional** e defina as opções conforme apropriado.

1. Selecione **Create build project (Criar projeto de compilação)**. Na página **Revisão**, escolha **Iniciar compilação** para executar a compilação.

## Etapa 2: verificar se os webhooks estão habilitados
<a name="verification-checks"></a>

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. No painel de navegação, selecione **Projetos de compilação**.

1. Execute um destes procedimentos:
   + Selecione o link do projeto de compilação com webhooks que você deseja verificar e selecione **Detalhes da compilação**.
   + Selecione o botão ao lado do projeto de compilação com webhooks que você deseja verificar, selecione **Visualizar detalhes** e, depois, **Detalhes da compilação**.

1. Em **Eventos de webhook da origem principal**, escolha o link URL do **Webhook**. 

1. No seu GitHub repositório, na página **Configurações**, em **Webhooks**, verifique se **Pull Requests** e **Pushes** estão selecionados.

1. Nas configurações GitHub do seu perfil, em **Configurações pessoais**, **Aplicativos**, ** OAuthAplicativos autorizados**, você deve ver que seu aplicativo foi autorizado a acessar a AWS região selecionada.

# Tutorial: Assinatura de código da Apple com Fastlane ao CodeBuild usar o S3 para armazenamento de certificados
<a name="sample-fastlane"></a>

[fastlane](https://docs.fastlane.tools/) é uma ferramenta popular de automação de código aberto para automatizar implantações e lançamentos beta de aplicações iOS e Android. Ela gerencia todas as tarefas tediosas, como gerar capturas de tela, gerenciar assinaturas de código e lançar a aplicação.

## Pré-requisitos
<a name="sample-fastlane-prerequisites"></a>

Para concluir este tutorial, primeiro você precisa configurar o seguinte:
+ Um Conta da AWS
+ Uma [conta de desenvolvedor da Apple](https://developer.apple.com/)
+ Um bucket do S3 para armazenar certificados
+ fastlane instalado no projeto: [guia](https://docs.fastlane.tools/getting-started/ios/setup/) para instalar o fastlane

## Etapa 1: configurar o Fastlane Match com o S3 na máquina local
<a name="sample-fastlane-S3"></a>

O [Fastlane Match](https://docs.fastlane.tools/actions/match/) é uma das [ferramentas da Fastlane](https://fastlane.tools/) e permite uma configuração perfeita para assinatura de código em seu ambiente de desenvolvimento local e em outros ambientes. CodeBuild O Fastlane Match armazena todos os seus certificados de assinatura de código e perfis de provisionamento em um Git repository/S3 Bucket/Google Cloud Storage e baixa e instala os certificados e perfis necessários quando necessário.

Neste exemplo de configuração, você configura e usa um bucket do Amazon S3 para armazenamento. 

****

1. Inicialize o match em seu projeto:

   ```
   fastlane match init
   ```

1. Quando solicitado, escolha S3 como modo de armazenamento.

1. Atualize o “*Matchfile*” para usar o S3:

   ```
   storage_mode("s3")
      s3_bucket("your-s3-bucket-name")
      s3_region("your-aws-region")
      type("appstore") # The default type, can be: appstore, adhoc, enterprise or development
   ```

## Etapa 2: configurar o Fastfile
<a name="sample-fastlane-S3-fastfile"></a>

Crie ou atualize seu `Fastfile` com a seguinte lane.

Ativado CodeBuild, o Fastlane Match precisará ser executado toda vez que você criar e assinar seu aplicativo. A maneira mais fácil de fazer isso é adicionar a ação `match` à lane que cria a aplicação.

```
default_platform(:ios)

platform :ios do
  before_all do
    setup_ci
  end
  
  desc "Build and sign the app"
  lane :build do
    match(type: "appstore", readonly: true)
    gym(
      scheme: "YourScheme",
      export_method: "app-store"
    )
  end
end
```

**nota**  
Adicione `setup_ci` à seção `before_all `no `Fastfile` para que a ação de match funcione corretamente. Isso garante que um chaveiro temporário do Fastlane com as permissões apropriadas seja usado. Sem usar isso, podem ocorrer falhas na compilação ou resultados inconsistentes. 



## Etapa 3: executar o comando `fastlane match` para gerar os respectivos certificados e perfis
<a name="sample-fastlane-S3-certificates"></a>

O comando match do fastlane para o tipo especificado (ou seja, development, appstore, adhoc, enterprise) gerará o certificado e o perfil se não estiver disponível na loja remota. Os certificados e perfis serão armazenados no S3 pelo fastlane.

```
bundle exec fastlane match appstore
```

A execução do comando será interativa e o fastlane solicitará a definição da senha para descriptografar os certificados.

## Etapa 4: criar o arquivo da aplicação para o projeto
<a name="sample-fastlane-S3-appfile"></a>

Crie ou adicione o arquivo da aplicação conforme apropriado para o projeto.

****

1. Crie ou adicione o [Gymfile](http://docs.fastlane.tools/actions/gym/#gymfile), [Appfile](http://docs.fastlane.tools/advanced/Appfile/), [Snapfile](http://docs.fastlane.tools/actions/snapshot/#snapfile), [Deliverfile](http://docs.fastlane.tools/actions/deliver/#editing-the-deliverfile) com base nos requisitos de compilação do projeto.

1. Confirmar as alterações para o repositório remoto

## Etapa 5: criar variáveis de ambiente no Secrets Manager
<a name="sample-fastlane-S3-secrets"></a>

Crie dois segredos para armazenar o cookie da sessão do fastlane e a frase secreta correspondente. Consulte mais informações sobre como criar segredos no Secrets Manager em [Criar um segredo do AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html).

****

1. Acesse seu cookie de sessão do fastlane da seguinte forma.

   1. Chave secreta: `FASTLANE_SESSION`

   1. Valor do segredo: cookie de sessão gerado ao executar o comando a seguir na máquina local.
**nota**  
Esse valor fica disponível após a autenticação em um arquivo local: `~/.fastlane/spaceship/my_appleid_username/cookie`.

      ```
      fastlane spaceauth -u <apple account>
      ```

1. Frase secreta do Fastlane Match - Para permitir que o Fastlane Match decifre os certificados e perfis armazenados no bucket do S3, é necessário adicionar a senha de criptografia que você configurou na etapa de configuração do Match às variáveis de ambiente do projeto. CodeBuild

   1. Chave secreta: `MATCH_PASSWORD`

   1. Valor do segredo: *<match passphrase to decrypt certificates>*. A frase secreta é definida ao gerar os certificados na Etapa 3.

**nota**  
Ao criar os segredos acima no Secrets Manager, forneça o nome de um segredo com o seguinte prefixo: `/CodeBuild/`

## Etapa 6: criar uma frota de computação
<a name="sample-fastlane-S3-fleet"></a>

Crie a frota de computação para o projeto.

****

1. No console, acesse CodeBuild e crie uma nova frota de computação.

1. Escolha “macOS” como sistema operacional e selecione um tipo de computação e uma imagem apropriados.

## Etapa 7: criar um projeto no CodeBuild
<a name="sample-fastlane-S3-project"></a>

Crie seu projeto em CodeBuild.



****

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Crie um projeto de compilação. Para obter informações, consulte [Criar um projeto de compilação (console)](create-project.md#create-project-console) e [Executar uma compilação (console)](run-build-console.md).

1. Configure seu provedor de origem (como GitHub, CodeCommit). Esse é o repositório de origem do projeto do iOS e não o repositório de certificados.

1.  Em **Ambiente**: 
   + Escolha **Capacidade reservada**.
   + Em **Frota**, selecione a frota criada acima.
   + Forneça o nome da função de serviço que CodeBuild será criada para você.
   + Forneça as variáveis de ambiente abaixo.
     + Nome:`MATCH_PASSWORD`, Valor:*<secrets arn>*, Tipo: Secrets Manager (Secrets ARN criado na etapa 5 para MATCH\$1PASSWORD)
     + Nome:`FASTLANE_SESSION`, Valor:*<secrets arn>*, Tipo: Secrets Manager (Secrets ARN criado na Etapa 5 para FASTLANE\$1SESSION)

1. Em **Buildspec**, adicione:

   ```
   version: 0.2
   
   phases:
     install:
       commands:
         - gem install bundler
         - bundle install
     build:
       commands:
         - echo "Building and signing the app..."
         - bundle exec fastlane build
     post_build:
       commands:
         - echo "Build completed on date"
   
   artifacts:
     files:
       - '*/.ipa'
     name: app-$(date +%Y-%m-%d)
   ```

## Etapa 8: configurar o perfil do IAM
<a name="sample-fastlane-S3-role"></a>

Depois que o projeto for criado, certifique-se de que a função de serviço do seu CodeBuild projeto tenha permissões para acessar o bucket do S3 que contém os certificados. Adicione a seguinte política ao perfil:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::your-s3-bucket-name"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::your-s3-bucket-name/*"
        }
    ]
}
```

------

## Etapa 9: executar a compilação
<a name="sample-fastlane-S3-run"></a>

Execute o build. Você pode revisar o status da compilação e fazer login CodeBuild.

Depois que o trabalho for concluído, você poderá visualizar o log do trabalho.

## Solução de problemas
<a name="sample-fastlane-S3-troubleshooting"></a>
+ Se houver problemas com a busca de certificados, certifique-se de que as permissões do IAM estejam configuradas corretamente para acesso ao S3.
+ Se você encontrar problemas com a decodificação do certificado, defina a senha correta na variável de ambiente MATCH\$1PASSWORD.
+ Para problemas de assinatura de código, verifique se sua conta de desenvolvedor da Apple tem os certificados e perfis necessários e se o identificador do pacote no projeto do Xcode corresponde ao do perfil de aprovisionamento.

## Considerações sobre segurança
<a name="sample-fastlane-considerations"></a>

Veja as configurações sobre segurança deste tutorial.
+ Verifique se o bucket do S3 tem as configurações de segurança adequadas, incluindo criptografia em repouso. Em particular, certifique-se de que o bucket não tenha acesso público e restrinja o acesso somente CodeBuild ao sistema que precisa ter acesso.
+ Considere usar AWS Secrets Manager para armazenar informações confidenciais, como MATCH\$1PASSWORD e FASTLANE\$1SESSION.

Este exemplo fornece uma configuração para assinatura de código iOS com Fastlane CodeBuild usando o Amazon S3 para armazenamento de certificados. Talvez seja necessário ajustar algumas etapas com base nos requisitos e no CodeBuild ambiente específicos do projeto. Essa abordagem aproveita os AWS serviços para aumentar a segurança e a integração no AWS ecossistema.

# Tutorial: Assinatura de código da Apple com Fastlane em CodeBuild uso GitHub para armazenamento de certificados
<a name="sample-fastlane-github"></a>

[fastlane](https://docs.fastlane.tools/) é uma ferramenta popular de automação de código aberto para automatizar implantações e lançamentos beta de aplicações iOS e Android. Ela gerencia todas as tarefas tediosas, como gerar capturas de tela, gerenciar assinaturas de código e lançar a aplicação.

Este exemplo demonstra como configurar a assinatura de código da Apple usando o Fastlane em um CodeBuild projeto executado no Mac Fleet, com GitHub armazenamento para certificados e perfis de provisionamento.

## Pré-requisitos
<a name="sample-fastlane-github-prerequisites"></a>

Para concluir este tutorial, primeiro você precisa configurar o seguinte:
+ Um Conta da AWS
+ Uma [conta de desenvolvedor da Apple](https://developer.apple.com/)
+ Um GitHub repositório privado para armazenar certificados
+ fastlane instalado no projeto: [guia](https://docs.fastlane.tools/getting-started/ios/setup/) para instalar o fastlane

## Etapa 1: Configure o Fastlane Match GitHub em sua máquina local
<a name="sample-fastlane-github-certificates"></a>

O [Fastlane Match](https://docs.fastlane.tools/actions/match/) é uma das [ferramentas da Fastlane](https://fastlane.tools/) e permite uma configuração perfeita para assinatura de código em seu ambiente de desenvolvimento local e não. CodeBuild O Fastlane Match armazena todos os seus certificados de assinatura de código e perfis de provisionamento em um Git repository/S3 Bucket/Google Cloud Storage e baixa e instala os certificados e perfis necessários quando necessário.

Neste exemplo de configuração, vamos configurar e usar um repositório Git para armazenamento. 

****

1. Inicialize o match em seu projeto:

   ```
   fastlane match init
   ```

1. Quando solicitado, escolha GitHub como modo de armazenamento.

1. Atualize seu `*Matchfile*` para usar GitHub:

   ```
   git_url("https://github.com/your-username/your-certificate-repo.git")
   storage_mode("git")
   type("development") # The default type, can be: appstore, adhoc, enterprise or development
   ```

**nota**  
Insira o URL HTTPS do repositório Git para fastlane para autenticar e clonar com sucesso. Caso contrário, você poderá receber um erro de autenticação ao tentar usar o match.

## Etapa 2: configurar o Fastfile
<a name="sample-fastlane-github-fastfile"></a>

Crie ou atualize seu `Fastfile` com a seguinte lane.

Ativado CodeBuild, o Fastlane Match precisará ser executado toda vez que você criar e assinar seu aplicativo. A maneira mais fácil de fazer isso é adicionar a ação `match` à lane que cria a aplicação.

```
default_platform(:ios)

platform :ios do
  before_all do
    setup_ci
  end
  
  desc "Build and sign the app"
  lane :build do
    match(type: "appstore", readonly: true)
    gym(
      scheme: "YourScheme",
      export_method: "app-store"
    )
  end
end
```

**nota**  
Adicione `setup_ci` à seção `before_all `no `Fastfile` para que a ação de match funcione corretamente. Isso garante que um chaveiro temporário do Fastlane com as permissões apropriadas seja usado. Sem usar isso, podem ocorrer falhas na compilação ou resultados inconsistentes. 

## Etapa 3: executar o comando `fastlane match` para gerar os respectivos certificados e perfis
<a name="sample-fastlane-github-certificates"></a>

O comando match do fastlane para o tipo especificado (ou seja, development, appstore, adhoc, enterprise) gerará o certificado e o perfil se não estiver disponível na loja remota. Os certificados e perfis serão armazenados GitHub pela fastlane.

```
bundle exec fastlane match appstore
```

A execução do comando será interativa e o fastlane solicitará a definição da senha para descriptografar os certificados.

## Etapa 4: criar o arquivo da aplicação para o projeto
<a name="sample-fastlane-github-appfile"></a>

Crie ou adicione o arquivo da aplicação conforme apropriado para o projeto.

****

1. Crie ou adicione o [Gymfile](http://docs.fastlane.tools/actions/gym/#gymfile), [Appfile](http://docs.fastlane.tools/advanced/Appfile/), [Snapfile](http://docs.fastlane.tools/actions/snapshot/#snapfile), [Deliverfile](http://docs.fastlane.tools/actions/deliver/#editing-the-deliverfile) com base nos requisitos de compilação do projeto.

1. Confirme as alterações para o repositório remoto.

## Etapa 5: criar variáveis de ambiente no Secrets Manager
<a name="sample-fastlane-github-secrets"></a>

Crie três segredos para armazenar o cookie da sessão do fastlane e a frase secreta correspondente. Consulte mais informações sobre como criar segredos no Secrets Manager em [Criar um segredo do AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html).

****

1. Acesse seu cookie de sessão do fastlane da seguinte forma.

   1. Chave secreta: `FASTLANE_SESSION`

   1. Valor do segredo: cookie de sessão gerado ao executar o comando a seguir na máquina local.
**nota**  
Esse valor fica disponível após a autenticação em um arquivo local: `~/.fastlane/spaceship/my_appleid_username/cookie`.

      ```
      fastlane spaceauth -u <Apple_account>
      ```

1. Frase secreta do Fastlane Match - Para permitir que o Fastlane Match decifre os certificados e perfis armazenados no repositório Git, é necessário adicionar a senha de criptografia que você configurou na etapa de configuração do Match às variáveis de ambiente do projeto. CodeBuild 

   1. Chave secreta: `MATCH_PASSWORD`

   1. Valor do segredo: `<match passphrase to decrypt certificates>`. A frase secreta é definida ao gerar os certificados na Etapa 3.

1. `MATCH_GIT_BASIC_AUTHORIZATION` do Fastlane: defina uma autorização básica para *match*:

   1. Chave secreta: 

      `MATCH_GIT_BASIC_AUTHORIZATION`

   1. Valor do segredo: o valor deve ser uma string codificada em base64 do seu nome de usuário e token de acesso pessoal (PAT) no formato `username:password`. Você pode gerá-lo usando o seguinte comando:

      ```
      echo -n your_github_username:your_personal_access_token | base64
      ```

      Você pode gerar seu PAT no GitHub console em **Seu perfil > Configurações > Configurações de desenvolvedores > Token de acesso pessoal**. Para obter mais informações, consulte o guia a seguir: [https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing- your-personal-access-tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

**nota**  
Ao criar os segredos acima no Secrets Manager, forneça o nome de um segredo com o seguinte prefixo: `/CodeBuild/`

## Etapa 6: criar uma frota de computação
<a name="sample-fastlane-github-fleet"></a>

Crie a frota de computação para o projeto.

****

1. No console, acesse CodeBuild e crie uma nova frota de computação.

1. Escolha `macOS` como sistema operacional e selecione um tipo de computação e uma imagem apropriados.

## Etapa 7: criar um projeto no CodeBuild
<a name="sample-fastlane-github-project"></a>

Crie seu projeto em CodeBuild.

****

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Crie um projeto de compilação. Para obter informações, consulte [Criar um projeto de compilação (console)](create-project.md#create-project-console) e [Executar uma compilação (console)](run-build-console.md).

1. Configure seu provedor de origem (como GitHub, CodeCommit). Esse é o repositório de origem do projeto do iOS e não o repositório de certificados.

1.  Em **Ambiente**: 
   + Escolha **Capacidade reservada**.
   + Em **Frota**, selecione a frota criada acima.
   + Forneça o nome da função de serviço que CodeBuild será criada para você.
   + Forneça as variáveis de ambiente abaixo.
     + Nome:`MATCH_PASSWORD`, Valor:*<secrets arn>*, Tipo: Secrets Manager (Secrets ARN criado na etapa 5 para MATCH\$1PASSWORD)
     + Nome:`FASTLANE_SESSION`, Valor:*<secrets arn>*, Tipo: Secrets Manager (Secrets ARN criado na etapa 5 para FASTLANE\$1SESSION)
     + Nome:`MATCH_GIT_BASIC_AUTHORIZATION`, Valor:*<secrets ARN>*, Tipo: Secrets Manager Secrets ARN (criado na etapa 5 para) `MATCH_GIT_BASIC_AUTHORIZATION`

1. Em **Buildspec**, adicione:

   ```
   version: 0.2
   
   phases:
     install:
       commands:
         - gem install bundler
         - bundle install
     build:
       commands:
         - echo "Building and signing the app..."
         - bundle exec fastlane build
     post_build:
       commands:
         - echo "Build completed on date"
   
   artifacts:
     files:
       - '*/.ipa'
     name: app-$(date +%Y-%m-%d)
   ```

## Etapa 8: executar a compilação
<a name="sample-fastlane-github-run"></a>

Execute o build. Você pode revisar o status da compilação e fazer login CodeBuild.

Depois que o trabalho for concluído, você poderá visualizar o log do trabalho.

## Solução de problemas
<a name="sample-fastlane-github-troubleshooting"></a>
+ Se você tiver problemas para acessar o GitHub repositório, verifique novamente seu token de acesso pessoal e a variável de ambiente MATCH\$1GIT\$1BASIC\$1AUTHORIZATION.
+ Se você encontrar problemas com a decodificação do certificado, defina a senha correta na variável de ambiente MATCH\$1PASSWORD.
+ Para problemas de assinatura de código, verifique se sua conta de desenvolvedor da Apple tem os certificados e perfis necessários e se o identificador do pacote no projeto do Xcode corresponde ao do perfil de aprovisionamento.

## Considerações sobre segurança
<a name="sample-fastlane-github-considerations"></a>

Veja as configurações sobre segurança deste tutorial.
+ Mantenha seu GitHub repositório de certificados privado e audite regularmente o acesso.
+ Considere usar AWS Secrets Manager para armazenar informações confidenciais, como MATCH\$1PASSWORD e FASTLANE\$1SESSION.

Este exemplo fornece uma configuração para a assinatura de código do iOS com o Fastlane e CodeBuild o uso GitHub para armazenamento de certificados. Talvez seja necessário ajustar algumas etapas com base nos requisitos e no CodeBuild ambiente específicos do projeto. Essa abordagem aproveita os AWS serviços para aumentar a segurança e a integração no AWS ecossistema.