Antes de começar
- Crie uma instância do Secure Source Manager.
- Crie um repositório do Secure Source Manager.
- Configure uma conta de serviço especificada pelo usuário do Cloud Build.
Funções exigidas
Para receber as permissões necessárias para conectar um repositório do Secure Source Manager ao Cloud Build, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Gravador de repositórios do Secure Source Manager (
roles/securesourcemanager.repoWriter
) no seu repositório -
Acessador de instâncias do Secure Source Manager (
roles/securesourcemanager.instanceAccessor
) na instância do Secure Source Manager
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Para informações sobre como conceder papéis do Secure Source Manager, consulte Controle de acesso com o IAM e Conceder acesso à instância aos usuários.
Papéis necessários da conta de serviço
Para criar builds e receber o status deles no Cloud Build, conceda ao
agente de serviço do Secure Source Manager (service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com
) os seguintes
papéis do Identity and Access Management (IAM):
- Papel de Editor do Cloud Build
(
roles/cloudbuild.builds.editor
) no projeto em que você ativou o Cloud Build. - O papel Usuário da conta de serviço
(
roles/iam.serviceAccountUser
) na conta de serviço do Cloud Build ou no projeto em que a conta de serviço do Cloud Build foi criada. - Se o projeto em que você ativou o Cloud Build for diferente do
projeto em que o Secure Source Manager está ativado, conceda o papel
Consumidor do uso de serviços
(
roles/serviceusage.serviceUsageConsumer
) no projeto do Cloud Build. - Se os builds estiverem sendo executados em pools de workers, conceda à conta de serviço do Secure Source Manager o papel de Usuário do WorkerPool do Cloud Build (
roles/cloudbuild.workerPoolUser
) no projeto do Cloud Build.
Para permitir que o Cloud Build leia do seu repositório do Secure Source Manager, conceda à conta de serviço do Cloud Build os seguintes papéis do IAM:
- O papel Acessador de instâncias do Secure Source Manager
(
roles/securesourcemanager.instanceAccessor
) na instância do Secure Source Manager. - Papel Leitor de repositórios do Secure Source Manager no repositório do Secure Source Manager que você quer conectar ao Cloud Build.
Dependendo do seu caso de uso, a conta de serviço do Cloud Build pode precisar de outros papéis do IAM para executar builds, por exemplo:
- Para armazenar registros de build no Cloud Logging, conceda o papel de Gravador de registros à conta de serviço do Cloud Build.
- Para acessar os secrets no Secret Manager, conceda o papel de
Acessador de secrets do Secret Manager
(
roles/secretmanager.secretAccessor
) à conta de serviço do Cloud Build.
Para saber como conceder papéis do IAM a um agente de serviço, consulte Conceder ou revogar um único papel.
Para informações sobre registros de build, consulte Configurar registros de build.
Criar um arquivo de configuração do build
Um arquivo de configuração da build define os campos necessários para o Cloud Build executar suas tarefas de build. É possível gravar o arquivo de configuração de build usando a sintaxe YAML.
É possível criar arquivos de configuração de build nas ramificações que você quer usar para criar.
Para criar um arquivo de configuração de build, faça o seguinte:
- Na interface da Web do Secure Source Manager, selecione o repositório que você quer conectar ao Cloud Build.
- Selecione a ramificação que você quer criar usando o Cloud Build.
Crie um arquivo de configuração do build. Para saber como criar arquivos de configuração de build, siga as instruções em criar um arquivo de configuração de build.
Confirme as mudanças na ramificação.
Criar um arquivo de acionadores
O arquivo de configuração de gatilhos precisa ser criado na ramificação padrão do repositório.
Para criar um arquivo de configuração de gatilhos:
- No repositório local ou na interface da Web do Secure Source Manager, mude para a ramificação padrão.
Crie um arquivo chamado
.cloudbuild/triggers.yaml
.Configure o acionador no arquivo
.cloudbuild/triggers.yaml
:triggers: - name: TRIGGER_NAME project: PROJECT_ID configFilePath: CLOUD_BUILD_CONFIG_PATH eventType: EVENT_TYPE ignoredGitRefs: IGNORED_GIT_REFS includedGitRefs: INCLUDED_GIT_REFS serviceAccount: SERVICE_ACCOUNT includedFiles: INCLUDED_FILES ignoredFiles: IGNORED_FILES disabled: DISABLED_BOOL substitutions: _VARIABLE_NAME: VARIABLE_VALUE OVERRIDE_VARIABLE_NAME: OVERRIDE_VARIABLE_VALUE
Substitua:
TRIGGER_NAME
com um nome para o gatilho. Os nomes de gatilho podem conter apenas caracteres alfanuméricos e traços, e não podem começar ou terminar com um traço. É preciso que os nomes dos gatilhos tenham menos de 64 caracteres.PROJECT_ID
pelo ID do projeto em que você ativou o Cloud Build. Google Cloud Este campo é opcional. O padrão é o projeto do Secure Source Manager.CLOUD_BUILD_CONFIG_PATH
com o caminho para o arquivo de configuração do Cloud Build que você quer usar para esse gatilho. Este campo é opcional. O valor padrão é.cloudbuild/cloudbuild.yaml
EVENT_TYPE
com o tipo de evento que você quer usar para acionar o build. As opções são:push
para acionar o envio para os branches especificadospull_request
para acionar uma solicitação de envio para as ramificações especificadas
Este campo é opcional. O valor padrão é
push
.INCLUDED_GIT_REFS
com um formato de expressão regular RE2 opcional que corresponde às referências do Git que você quer usar para acionar um build. O valor padrão é vazio. Um valor vazio indica que não há restrições.IGNORED_GIT_REFS
com uma expressão regular opcional usando o formato de expressão regular RE2 que corresponde às referências do Git que você não quer acionar um build. O valor padrão é vazio. Um valor vazio indica que não há restrições. O campoignoredGitRefs
é verificado antes do campoincludedGitRefs
. Para mais informações sobre esses campos, consulte Esquema do arquivo de acionadores.SERVICE_ACCOUNT
com a conta de serviço do Cloud Build a ser usada para o build no formatoprojects/PROJECT_ID/serviceAccounts/ACCOUNT
. Substitua ACCOUNT pelo endereço de e-mail ou ID exclusivo da conta de serviço. Como prática recomendada, configure uma conta de serviço especificada pelo usuário. A conta de serviço legada do Cloud Build não pode ser usada devido às limitações dela.INCLUDED_FILES
com uma expressão regular opcional no formato RE2 que corresponda aos arquivos que você quer usar para acionar um build.Se algum dos arquivos mudados não corresponder ao campo de filtro
ignoredFiles
e corresponder ao campo de filtroincludedFiles
, uma build será acionada. O valor padrão é vazio. Um valor vazio indica que não há restrições.IGNORED_FILES
com uma expressão regular opcional no formato RE2 que corresponda aos arquivos que você não quer usar para acionar um build.Se todos os arquivos alterados em um commit corresponderem a esse campo de filtro, uma build não será acionada. O valor padrão é vazio. Um valor vazio indica que não há restrições.
DISABLED_BOOL
comtrue
para desativar o gatilho oufalse
para ativar o gatilho. Este campo é opcional. O valor padrão éfalse
.VARIABLE_NAME
com o nome de uma variável que você quer introduzir no arquivo de gatilhos.VARIABLE_VALUE
com o valor da variável.OVERRIDE_VARIABLE_NAME
com o nome da variável de substituição padrão do Secure Source Manager. Para informações sobre as variáveis de substituição padrão disponíveis, consulte a seção de substituições do Esquema de arquivo de acionadores.OVERRIDE_VARIABLE_VALUE
com o valor que você quer usar para substituir o valor padrão da variável de substituição padrão.
Faça commit do arquivo de configuração do acionador na ramificação padrão.
Depois que o arquivo de gatilhos é confirmado, o Secure Source Manager aciona builds com base na configuração do arquivo de gatilhos.
O Secure Source Manager lê os arquivos de configuração e o SHA de commit ou a referência Git associada dos seguintes tipos de eventos:
- Para eventos
push
, o Secure Source Manager lê o SHA do commit ou a referência do Git quando o push é concluído. - Para eventos
pull_request
, o Secure Source Manager lê o SHA de commit ou a referência do Git quando as mudanças da solicitação de envio são extraídas.
- Para eventos
Ver o status do build
Quando um build é acionado por um evento de solicitação push ou pull, o status do commit e do build é exibido na interface da Web do Secure Source Manager.
Os valores possíveis para o status do build são os seguintes:
SUCCESS: o build foi concluído com sucesso.
AVISO: ocorreu um problema ao tentar criar.
FAILURE: a criação falhou durante a execução.
É possível impedir que commits com builds sem êxito sejam mesclados em ramificações importantes se você configurar uma regra de proteção de ramificação para exigir uma verificação de status bem-sucedida de acionadores configurados no arquivo de acionadores. Para saber mais sobre a proteção de ramificações, leia a Visão geral da proteção de ramificações.
Para conferir o status do build de um evento de push:
Na interface da Web do Secure Source Manager, navegue até o repositório.
Se o evento de push mais recente tiver acionado um build, o status será exibido ao lado do SHA do commit. Para ver detalhes sobre esse status, clique nele.
Para conferir o status de builds de commits anteriores, selecione Commits para ver o histórico de commits e clique no status para conferir os detalhes.
Para conferir o status do build de um evento de solicitação de envio:
- Na interface da Web do Secure Source Manager, clique em Solicitações de envio.
Clique na solicitação de envio que você quer acessar.
Se os builds foram acionados pela solicitação de envio, você vai ver uma seção intitulada Todas as verificações foram concluídas ou Algumas verificações informaram avisos.
Resolver problemas
Para encontrar métodos de diagnóstico e resolução de erros do Cloud Build ao se conectar com o Secure Source Manager, consulte O arquivo de gatilhos não aciona o build.
A seguir
- Saiba como ver os resultados da build no Cloud Build.
- Saiba como resolver erros de build.