É possível usar um gatilho de build do Cloud Build para iniciar automaticamente um build e implantar um fluxo de trabalho de um repositório Git. Você pode configurar o gatilho para implantar o fluxo de trabalho em qualquer mudança no repositório de origem ou somente quando a mudança corresponder a critérios específicos.
Essa abordagem pode ajudar a gerenciar o ciclo de vida da implantação. Por exemplo, é possível implantar mudanças em um fluxo de trabalho em um ambiente de preparação, executar testes nesse ambiente e, em seguida, implementar essas mudanças de forma incremental no ambiente de produção.
Antes de começar
Estas instruções pressupõem que você tenha o
papel de editor do Cloud Build
(roles/cloudbuild.builds.editor) no seu Google Cloud projeto para poder
criar gatilhos. Você também precisa de um fluxo de trabalho em um repositório de origem, como GitHub ou Bitbucket.
Console
Ative as APIs Cloud Build e Workflows.
Conceda o papel de administrador do Workflows (
roles/workflows.admin) à conta de serviço do Cloud Build:No Google Cloud console, acesse a página IAM.
Selecione o projeto.
Na linha da conta de serviço do Cloud Build (
PROJECT_NUMBER@cloudbuild.gserviceaccount.com), clique em Editar principal.Clique em Adicionar outro papel.
Na lista Papel, selecione o papel Administrador do Workflows.
Clique em Salvar.
Conceda o papel de usuário da conta de serviço (
roles/iam.serviceAccountUser) na conta de serviço padrão do Compute Engine à conta de serviço do Cloud Build. Quando você tiver ativado a API Compute Engine, a conta de serviço padrão do Compute Engine éPROJECT_NUMBER-compute@developer.gserviceaccount.com.No Google Cloud console do, acesse a página Contas de serviço.
Selecione o projeto.
Clique no endereço de e-mail da conta de serviço padrão do Compute Engine (
PROJECT_NUMBER-compute@developer.gserviceaccount.com).Clique na guia Permissões.
Clique no botão Conceder acesso.
Para adicionar uma nova principal, insira o endereço de e-mail da conta de serviço (
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com).Na lista Selecionar um papel, selecione o papel Contas de serviço > Usuário da conta de serviço.
Clique em Salvar.
gcloud
Ative as APIs Cloud Build e Workflows.
gcloud services enable cloudbuild.googleapis.com \ workflows.googleapis.comConceda o papel de administrador do Workflows (
roles/workflows.admin) à conta de serviço do Cloud Build:PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format='value(projectNumber)') gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$PROJECT_NUMBER@clogserviceaccount.comudbuild. \ --role=roles/workflows.adminSubstitua
PROJECT_IDpelo ID do seu Google Cloud projeto.Conceda o papel de usuário da conta de serviço (
roles/iam.serviceAccountUser) na conta de serviço padrão do Compute Engine à conta de serviço do Cloud Build. Quando você tiver ativado a API Compute Engine, a conta de serviço padrão do Compute Engine éPROJECT_NUMBER-compute@developer.gserviceaccount.com.gcloud iam service-accounts add-iam-policy-binding \ $PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role=roles/iam.serviceAccountUser
Conectar-se ao repositório de origem
É necessário conectar o Cloud Build ao repositório de origem para que ele possa automatizar os builds em resposta a eventos que acontecem no repositório.
Conclua as etapas a seguir para se conectar ao GitHub ou ao Bitbucket:
No Google Cloud console, acesse a página Gatilhos do Cloud Build:
Se necessário, selecione o projeto e clique em Abrir.
Na lista Região, selecione a região em que você quer criar o gatilho.
Clique em Conectar repositório.
Selecione o repositório de origem em que você armazenou o código-fonte.
Por exemplo: GitHub (app GitHub do Cloud Build)
Clique em Continuar.
Autentique o repositório de origem com seu nome de usuário e senha.
Se você estiver fazendo login no GitHub, será necessário autorizar o app GitHub do Google Cloud Build a acessar sua conta do GitHub para continuar.
Na lista de repositórios disponíveis, selecione o repositório desejado e clique em OK.
Para repositórios externos, como GitHub e Bitbucket, é necessário ter permissões de proprietário para o Google Cloud projeto em que você está trabalhando.
Leia a exoneração de responsabilidade e marque a caixa de seleção ao lado dela para indicar que você concorda com os termos.
Clique em Conectar.
Para continuar criando um gatilho de compilação para automatizar builds para o código-fonte no repositório, clique em Criar um gatilho. Caso contrário, clique em Concluído.
Criar um arquivo de configuração do Cloud Build
Um arquivo de configuração do build define os campos necessários ao usar um gatilho de compilação para iniciar um build. Crie o arquivo de configuração no diretório raiz do projeto e grave-o usando YAML ou JSON.
Por exemplo, o arquivo de configuração a seguir implanta e executa um fluxo de trabalho de teste e, em seguida, usa um script para verificar a saída. Se o teste for aprovado, o fluxo de trabalho será implantado:
As variáveis de substituição $BRANCH_NAME e $SHORT_SHA
são preenchidas pelo Cloud Build quando um build é acionado de um repositório Git. Elas representam o nome da ramificação e os sete primeiros caracteres do ID de commit associado ao build, respectivamente.
A variável de substituição $_WORKFLOW_NAME permite reutilizar um arquivo de configuração com diferentes valores de variáveis. É possível especificar o valor dela ao criar o gatilho de compilação.
Para saber mais, consulte Criar um arquivo de configuração do build.
Criar um gatilho de compilação
É possível automatizar a implantação do fluxo de trabalho criando um gatilho de build do Cloud Build.
Para criar um gatilho de compilação para o arquivo de configuração na seção anterior:
No Google Cloud console, acesse a página Gatilhos do Cloud Build:
Clique em Criar gatilho.
No campo Nome, insira um nome para o gatilho.
Em Evento, selecione o evento para invocar o gatilho.
Por exemplo: Enviar para uma ramificação
Em Origem, selecione o repositório e o nome da ramificação ou da tag que iniciará o gatilho. É possível usar uma expressão regular para especificar uma correspondência a uma ramificação ou tag.
Por exemplo:
GoogleCloudPlatform/workflows-demos(repositório) e^main$|^staging$(corresponde às ramificaçõesmainestaging)Expanda a seção Mostrar filtros de arquivos incluídos e ignorados e especifique o fluxo de trabalho como um arquivo incluído para que, quando ele for alterado, um build seja invocado.
Por exemplo:
gitops/workflow.yamlEm Configuração, selecione Arquivo de configuração do Cloud Build (YAML ou JSON) como o tipo e Repositório como o local.
No campo Local do arquivo de configuração do Cloud Build , especifique o local do arquivo.
Por exemplo:
gitops/cloudbuild.yamlOpcionalmente, para adicionar uma variável de substituição, clique em Adicionar variável e especifique uma combinação de chave e valor.
Por exemplo:
_WORKFLOW_NAME(variável) eworkflows-gitops(valor)Para salvar o gatilho de compilação, clique em Criar.
Quando qualquer mudança for enviada para um fluxo de trabalho na ramificação especificada do repositório Git, ela acionará automaticamente o Cloud Build para implantar o fluxo de trabalho.
Para mais informações, consulte Criar e gerenciar gatilhos de build.
Testar o gatilho de compilação
É possível testar o gatilho de compilação e o arquivo de configuração das seções anteriores.
Na ramificação
stagingdo repositório Git, editeworkflow.yamle mudeHello WorldparaBye World:Confirme e envie a mudança para a ramificação
staging.git add workflow.yaml git commit -m "Update workflow.yaml in staging"git pushO gatilho de build do Cloud Build é executado e inicia um build.
Para confirmar o sucesso do build, no Google Cloud console, acesse a página Histórico de builds:
Depois que um build é concluído, o Cloud Build fornece um status geral para o build e para cada etapa de build individual. Para mais informações, consulte Ver resultados de builds.
Para confirmar se um fluxo de trabalho de preparação está implantado, no Google Cloud console, acesse a página Fluxos de trabalho:
Um fluxo de trabalho chamado
workflows-gitops-stagingserá listado.Para implantar o fluxo de trabalho de preparação na produção, mescle a ramificação
stagingà ramificaçãomain:git checkout main git merge staging git pushComo
test-main.shesperaHello Worldna saída do fluxo de trabalho, o build falhará:Para implantar um fluxo de trabalho de produção, na ramificação
staging, editeworkflow.yamlnovamente e mude a string de volta paraHello World.Confirme e envie a mudança para a ramificação
staginge mescle a ramificaçãostagingà ramificaçãomain.Para confirmar se um fluxo de trabalho de produção está implantado, no Google Cloud console, acesse a página Fluxos de trabalho:
Um fluxo de trabalho chamado
workflows-gitops-mainserá listado.
A seguir
- Saiba mais sobre o Cloud Build.
- Saiba como resolver erros de build.
- Saiba como resolver problemas do Workflows.