Ligue-se ao Cloud Build

Esta página detalha como invocar compilações automaticamente a partir do Secure Source Manager através de ficheiros de configuração do Cloud Build e de um ficheiro YAML de acionadores no seu repositório do Secure Source Manager.

Antes de começar

  1. Crie uma instância do Secure Source Manager.
  2. Crie um repositório do Secure Source Manager.
  3. Configure uma conta de serviço especificada pelo utilizador do Cloud Build.

Funções necessárias

Para receber as autorizações de que precisa para associar um repositório do Secure Source Manager ao Cloud Build, peça ao seu administrador que lhe conceda as seguintes funções do IAM:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Para obter informações sobre a concessão de funções do Secure Source Manager, consulte os artigos Controlo de acesso com o IAM e Conceda aos utilizadores acesso à instância.

Funções da conta de serviço necessárias

Para criar compilações e obter o estado de compilação do Cloud Build, conceda ao agente de serviço do Secure Source Manager (service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com) as seguintes funções de gestão de identidade e de acesso (IAM):

  • Função de Editor do Cloud Build (roles/cloudbuild.builds.editor) no projeto onde ativou o Cloud Build.
  • Função Utilizador da conta de serviço (roles/iam.serviceAccountUser) na conta de serviço do Cloud Build ou no projeto com o qual a conta de serviço do Cloud Build foi criada.
  • Se o projeto onde ativou o Cloud Build for diferente do projeto onde o Secure Source Manager está ativado, conceda a função de consumidor de utilização de serviços (roles/serviceusage.serviceUsageConsumer) no projeto do Cloud Build.
  • Se as compilações estiverem a ser executadas em pools de trabalhadores, conceda à conta de serviço do Secure Source Manager a função Utilizador do WorkerPool do Cloud Build (roles/cloudbuild.workerPoolUser) no projeto do Cloud Build.

Para permitir que o Cloud Build leia a partir do seu repositório do Secure Source Manager, conceda à conta de serviço do Cloud Build as seguintes funções do IAM:

Consoante o seu exemplo de utilização, a conta de serviço do Cloud Build pode precisar de funções de IAM adicionais para executar compilações, por exemplo:

  • Para armazenar registos de compilação no Cloud Logging, conceda a função de Escritor de registos à conta de serviço do Cloud Build.
  • Para aceder aos segredos no Secret Manager, conceda a função de Secret Manager Secret Accessor (roles/secretmanager.secretAccessor) à conta de serviço do Cloud Build.

Para obter informações sobre como conceder funções de IAM a um agente de serviço, consulte o artigo Conceda ou revogue uma única função.

Para ver informações sobre os registos de compilação, consulte o artigo Configurar registos de compilação.

Crie um ficheiro de configuração de compilação

Um ficheiro de configuração de compilação define os campos necessários para que o Cloud Build execute as suas tarefas de compilação. Pode escrever o ficheiro de configuração de compilação com a sintaxe YAML.

Pode criar ficheiros de configuração de compilação no ramo ou ramos a partir dos quais quer compilar.

Para criar um ficheiro de configuração de compilação, faça o seguinte:

  1. Na interface Web do Secure Source Manager, selecione o repositório que quer associar ao Cloud Build.
  2. Selecione a ramificação a partir da qual quer criar a compilação com o Cloud Build.
  3. Crie um ficheiro de configuração de compilação. Para obter informações sobre como criar ficheiros de configuração de compilação, siga as instruções em crie um ficheiro de configuração de compilação.

  4. Consolide as alterações no ramo.

Crie um ficheiro de acionadores

O ficheiro de configuração dos acionadores tem de ser criado no ramo predefinido do seu repositório.

Para criar um ficheiro de configuração de acionadores:

  1. No repositório local ou na interface Web do Secure Source Manager, mude para o ramo predefinido.
  2. Cria um ficheiro com o nome .cloudbuild/triggers.yaml.

  3. Configure o acionador no ficheiro .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 o seguinte:

    • TRIGGER_NAME com um nome para o acionador. Os nomes dos acionadores só podem conter carateres alfanuméricos e traços, e não podem começar nem terminar com um traço. Os nomes dos acionadores têm de ter menos de 64 carateres.
    • PROJECT_ID com o ID do projeto onde ativou o Cloud Build. Google Cloud Este campo é opcional. A predefinição é o projeto do Secure Source Manager.
    • CLOUD_BUILD_CONFIG_PATH com o caminho para o ficheiro de configuração do Cloud Build que quer usar para este acionador. Este campo é opcional. O valor predefinido é .cloudbuild/cloudbuild.yaml
    • EVENT_TYPE com o tipo de evento que quer acionar a compilação. As opções são as seguintes:

      • push para acionar o envio para os ramos especificados
      • pull_request para acionar um pedido de envio para os ramos especificados

      Este campo é opcional. O valor predefinido é push.

    • INCLUDED_GIT_REFS com um formato de expressão regular RE2 opcional que corresponda às referências do Git que quer usar para acionar uma compilação. O valor predefinido está vazio. Um valor vazio indica que não existem restrições.

    • IGNORED_GIT_REFS com uma expressão regular opcional que usa o formato de expressão regular RE2 que corresponde às referências do Git que não quer que acionem uma compilação. O valor predefinido está vazio. Um valor vazio indica que não existem restrições. O campo ignoredGitRefs é verificado antes do campo includedGitRefs. Para mais informações sobre estes campos, consulte o Esquema do ficheiro de acionadores.

    • SERVICE_ACCOUNT com a conta de serviço do Cloud Build a usar para a compilação no formato projects/PROJECT_ID/serviceAccounts/ACCOUNT. Substitua ACCOUNT pelo endereço de email ou ID exclusivo da conta de serviço. Como prática recomendada, configure uma conta de serviço especificada pelo utilizador. Não é possível usar a conta de serviço do Cloud Build antiga devido às respetivas limitações.

    • INCLUDED_FILES com uma expressão regular de formato RE2 opcional que corresponde aos ficheiros para os quais quer acionar uma compilação.

      Se algum dos ficheiros alterados não corresponder ao campo de filtro ignoredFiles e os ficheiros alterados corresponderem ao campo de filtro includedFiles, é acionada uma compilação. O valor predefinido está vazio. Um valor vazio indica que não existem restrições.

    • IGNORED_FILES com uma expressão regular de formato RE2 opcional que corresponda aos ficheiros para os quais não quer acionar uma compilação.

      Se todos os ficheiros alterados num commit corresponderem a este campo de filtro, não é acionada uma compilação. O valor predefinido está vazio. Um valor vazio indica que não existem restrições.

    • DISABLED_BOOL com true para desativar o acionador ou false para ativar o acionador. Este campo é opcional. O valor predefinido é false.

    • VARIABLE_NAME com o nome de uma variável que quer introduzir no ficheiro de acionadores.

    • VARIABLE_VALUE com o valor da variável.

    • OVERRIDE_VARIABLE_NAME com o nome da variável de substituição predefinido do Secure Source Manager. Para obter informações sobre as variáveis de substituição predefinidas disponíveis, consulte a secção de substituições do esquema do ficheiro de acionadores.

    • OVERRIDE_VARIABLE_VALUE com o valor que quer usar para substituir o valor predefinido da variável de substituição predefinida.

  4. Confirme o ficheiro de configuração do acionador no ramo predefinido.

    Depois de confirmar o ficheiro de acionadores, o Secure Source Manager aciona compilações com base na configuração no ficheiro de acionadores.

    O Secure Source Manager lê os ficheiros de configuração e o SHA de commit ou a referência Git associados dos seguintes tipos de eventos:

    • Para eventos push, o Secure Source Manager lê o SHA de confirmação ou a referência Git quando o envio é concluído.
    • Para eventos pull_request, o Secure Source Manager lê o SHA de commit ou a referência Git quando as alterações do pedido de obtenção são obtidas.

Veja o estado da compilação

Quando uma compilação é acionada por um evento de pedido push ou pull, o estado de commit e compilação é apresentado na interface Web do Secure Source Manager.

Os valores possíveis para o estado de compilação são os seguintes:

  • êxitoSUCCESS: a compilação foi concluída com êxito.
  • avisoAVISO: ocorreu um problema ao tentar criar.
  • falhaFAILURE: a compilação falhou durante a execução.

Pode impedir que as confirmações com compilações sem êxito sejam unidas em ramos importantes se configurar uma regra de proteção de ramos para exigir uma verificação de estado bem-sucedida a partir de acionadores configurados no ficheiro de acionadores. Para saber mais sobre a proteção de ramificações, leia a vista geral da proteção de ramificações.

Para ver o estado de compilação de um evento push:

  1. Na interface Web do Secure Source Manager, navegue para o seu repositório.

    Se o evento push mais recente tiver acionado uma compilação, o estado é apresentado junto ao SHA de confirmação. Para ver detalhes sobre esse estado, clique no estado.

  2. Para ver o estado de compilação de commits anteriores, selecione Commits para ver o histórico de commits e, de seguida, clique no estado cujos detalhes quer ver.

Para ver o estado de compilação de um evento de pedido de obtenção:

  1. Na interface Web do Secure Source Manager, clique em Pedidos de obtenção.
  2. Clique no pedido de envio que quer ver.

    Se as compilações foram acionadas pelo pedido de obtenção, é apresentada uma secção com o título Todas as verificações foram bem-sucedidas ou Algumas verificações comunicaram avisos.

Resolver problemas

Para encontrar métodos de diagnóstico e resolução de erros do Cloud Build quando se liga ao Secure Source Manager, consulte o artigo O ficheiro de acionadores não aciona a compilação.

O que se segue?