Agora, o AWS CodeBuild oferece suporte ao GitHub Enterprise Server como um repositório de origem. Este exemplo mostra como configurar os projetos do CodeBuild quando o repositório do GitHub Enterprise Server tem um certificado instalado. Ele também mostra como habilitar webhooks para que o CodeBuild recompile o código-fonte toda vez que uma alteração de código for enviada ao repositório do GitHub Enterprise Server.
Tópicos
Pré-requisitos
-
Gere um token de acesso pessoal para o projeto do CodeBuild. Recomendamos que você crie um usuário do GitHub Enterprise e gere um token de acesso pessoal para este usuário. Copie-o na área de transferência para que ele possa ser usado quando você criar o projeto do CodeBuild. Para obter mais informações, consulte Criar um token de acesso pessoal para a linha de comando
no site de Ajuda do GitHub. Ao criar o token de acesso pessoal, inclua o escopo do repositório na definição.
-
Baixe o certificado do GitHub Enterprise Server. O CodeBuild usa o certificado para estabelecer 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
.pemSubstitua os espaços reservados no comando pelos seguintes valores:
HOST
. O endereço IP do 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 onde você colocou o certificado obtido por download.filename
. O nome do seu arquivo de certificado.Importante
Salve o certificado como um arquivo .pem.
Clientes no Windows:
Use o navegador para fazer download do certificado a partir 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.
-
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? 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?
nota
Esse bucket deve estar na mesma região da AWS que as compilações. Por exemplo, se você instruir o CodeBuild para executar uma compilação na região do Leste dos EUA (Ohio), o bucket deverá estar na região do Leste dos EUA (Ohio).
Etapa 1: criar um projeto de compilação com o GitHub Enterprise Server e habilitar webhooks
Abra o console do AWS CodeBuild em https://console.aws.amazon.com/codesuite/codebuild/home
. Se uma página de informações do CodeBuild for exibida, selecione Criar projeto de compilação. Caso contrário, no painel de navegação, expanda Compilar, escolha Projetos de compilação e, depois, Criar projeto de compilação.
Em Nome do projeto, insira um nome para esse projeto de compilação. Os nomes de projeto de compilação devem ser únicos em cada conta da AWS. 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.
-
Em Source (Origem), em Source provider (Provedor de origem), selecione GitHub Enterprise.
-
Em Personal Access Token, cole o token que você copiou na área de transferência e escolha Salvar Token. Em URL do repositório, insira o URL do repositório do GitHub Enterprise Server.
nota
Você só precisa inserir e salvar o token de acesso pessoal uma vez. Todos os projetos futuros do AWS CodeBuild usam esse token.
-
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 não seguro para ignorar os avisos do SSL ao conectar-se ao seu repositório do projeto 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.
-
Em Ambiente:
Para Imagem do ambiente, faça um dos seguintes procedimentos:
-
Para usar uma imagem do Docker gerenciada pelo AWS CodeBuild, selecione Imagem gerenciada e faça as escolhas em Sistema operacional, Runtime(s), Imagem e Versão da imagem. Faça uma seleção em 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 Outro registro, em URL de registro externo, insira o nome e a tag da imagem do Docker no Docker Hub usando o formato
. 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.docker repository
/docker image name
-
Para usar uma imagem privada do Docker, selecione Imagem personalizada. Em Tipo de ambiente, selecione ARM, Linux, Linux GPU ou Windows. Em Registro da imagem, selecione 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? no Guia do usuário do AWS Secrets Manager.
-
Em Perfil de serviço, faça um dos seguintes procedimentos:
-
Se você não tiver um perfil de serviço do CodeBuild, selecione Novo perfil de serviço. No campo Nome da função, digite o nome da nova função.
-
Se você tiver um perfil de serviço do CodeBuild, selecione Perfil 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, é possível criar um perfil de serviço do CodeBuild ao mesmo tempo. Por padrão, a função funciona somente com esse projeto de compilação. Se você usar o console para associar esse perfil de serviço a outro projeto de compilação, a função será atualizada para funcionar com os outros projetos de compilação. Um perfil de serviço pode funcionar com até 10 projetos de compilação.
-
-
Expanda Configuração Adicional.
Se você desejar que o CodeBuild funcione com a VPC:
-
Em VPC, escolha o ID da VPC que o CodeBuild usa.
-
Em Sub-redes da VPC, selecione as sub-redes que incluem recursos usados pelo CodeBuild.
-
Em Grupos de segurança da VPC, selecione os grupos de segurança que o CodeBuild usa para permitir acesso a recursos nas VPCs.
Para obter mais informações, consulte Usar o AWS CodeBuild com o Amazon Virtual Private Cloud.
-
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 Referência de buildspec.
-
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 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 Nome do bucket, 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 defiles
em Sintaxe de buildspec.
-
-
Em 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 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. Para obter mais informações sobre armazenamento em cache, consulte Compilações em cache para melhorar o desempenho.
-
-
Selecione Criar projeto de compilação. Na página de projeto da compilação, escolha Start build (Iniciar compilação).
-
Se você habilitou webhooks em Source (Origem), uma caixa de diálogo Create webhook (Criar webhook) será exibida com valores para Payload URL (URL da carga) e Secret (Segredo).
Importante
A caixa de diálogo Create webhook aparece somente uma vez. Copie a URL da carga e a chave secreta. Elas serão necessárias quando você adicionar um webhook ao GitHub Enterprise Server.
Se você precisar gerar um URL de carga e uma chave secreta novamente, deverá primeiro excluir o webhook do repositório do GitHub Enterprise Server. No projeto do CodeBuild, desmarque a caixa de seleção Webhook e selecione Salvar. Depois, você poderá criar ou atualizar um projeto do CodeBuild com a caixa de seleção Webhook marcada. A caixa de diálogo Create webhook aparece novamente.
-
No GitHub Enterprise Server, escolha o repositório no qual o projeto do CodeBuild está armazenado.
-
Escolha Configurações, escolha Hooks e serviços, e depois escolha Adicionar Webhook.
-
Insira a URL da carga útil e a chave secreta, aceite os valores padrão para os outros campos e, em seguida, escolha Adicionar webhook.
-
Retorne ao projeto do CodeBuild. Feche a caixa de diálogo Create webhook e escolha Start build.