Execute compilações num conjunto privado

Este documento explica como executar compilações em pools privados. Se não conhece as pools privadas, leia a vista geral das pools privadas.

Antes de começar

  • Certifique-se de que criou um conjunto privado através dos passos descritos no artigo Criar e gerir conjuntos privados.

  • Para usar os exemplos de linhas de comando neste guia, instale e configure a CLI Google Cloud.

  • Pode usar o mesmo Google Cloud projeto para criar o seu conjunto privado e as compilações do Cloud Build ou usar projetos diferentes. Se as suas compilações estiverem num projeto diferente do seu conjunto privado, defina o projeto predefinido na CLI gcloud para o projeto onde as suas compilações têm origem:

    gcloud config set project BUILD_ORIGIN_PROJECT_ID
    

Autorizações de IAM

  • Para executar compilações através da CLI gcloud ou da API Cloud Build, conceda a função de utilizador do WorkerPool no projeto do pool privado ao utilizador ou à conta de serviço que pede a compilação.

  • Para executar compilações automatizadas através de acionadores:

    • Se o projeto no qual está a iniciar a compilação for o mesmo que o projeto no qual existe o seu conjunto privado, não precisa de conceder autorizações.
    • Se o projeto no qual está a iniciar a compilação for diferente do projeto no qual existe o seu conjunto privado, conceda a função Utilizador do WorkerPool à conta de serviço que está a usar com o seu acionador no projeto do workerpool onde as suas compilações são criadas:

    Consola

    1. Abra a página IAM na Google Cloud consola.

      Abra a página Autorizações da IAM

    2. No menu pendente do seletor de projetos na parte superior da página, selecione o projeto que contém o seu conjunto privado.

    3. Clique em Conceder acesso.

    4. Introduza as seguintes definições de principal e função:

      • Adicione membros: introduza o endereço de email da conta de serviço que está a usar com o seu acionador.

      • Atribua funções: selecione a função Utilizador do WorkerPool do Cloud Build.

    5. Clique em Guardar para guardar as novas autorizações do IAM.

    gcloud

    Para adicionar a conta de serviço de compilação do projeto de acionador ao projeto do workerpool com a função cloudbuild.workerPoolUser:

      gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \
          --member=serviceAccount:SERVICE_ACCOUNT \
          --role=roles/cloudbuild.workerPoolUser
    

    Substitua os valores dos marcadores de posição no comando acima pelo seguinte:

    • PRIVATEPOOL_PROJECT_ID é o ID do projeto com o pool privado que executa a compilação.
    • SERVICE_ACCOUNT é o email da conta de serviço que está a usar com o acionador que executa a compilação.

Executar compilações

Pode enviar compilações a partir do mesmo Google Cloud projeto onde criou o conjunto privado ou a partir de um Google Cloud projeto diferente. Pode especificar o conjunto privado no ficheiro de configuração de compilação ou diretamente no comando gcloud:

Especificar o conjunto privado no ficheiro de configuração de compilação:

  1. No ficheiro de configuração do Cloud Build, adicione uma opção pool e especifique o nome completo do recurso do pool privado para executar a compilação:

    YAML

    steps:
    - name: 'bash'
      args: ['echo', 'I am running in a private pool!']
    options:
      pool:
        name: 'projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID'
    

    JSON

    {
      "steps": [
      {
        "name": "bash",
        "args": [
          "echo",
          "I am running in a private pool!"
        ]
      }
      ],
      "options": {
        "pool" : {
          "name" : "projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID"
        }
      }
    }
    

    Substitua os valores dos marcadores de posição no ficheiro de configuração acima pelo seguinte:

    • PRIVATEPOOL_PROJECT_ID: o projeto onde se encontra o seu conjunto privado. Google Cloud
    • REGION: a região onde criou o seu grupo privado.
    • PRIVATEPOOL_ID: o ID exclusivo da pool privada que especificou quando criou a pool privada.
  2. Use o ficheiro de configuração de compilação criado acima para executar a compilação através de gcloud ou da API ou usando acionadores. Se a sua instância estiver alojada no local, o Cloud Build também oferece suporte para a funcionalidade de acionadores para vários sistemas externos de gestão de código fonte, como o GitHub Enterprise ou o Bitbucket Server.

Especificar o pool privado no comando gcloud:

Pode especificar o conjunto privado no comando gcloud em vez de no ficheiro de configuração de compilação. Por exemplo, considere que tem o seguinte ficheiro de configuração de compilação:

YAML

  steps:
  - name: 'bash'
    args: ['echo', 'I am running in a private pool!']

JSON

  {
    "steps": [
    {
      "name": "bash",
      "args": [
        "echo",
        "I am running in a private pool!"
      ]
    }
    ],
  }

O comando seguinte cria usando o ficheiro de configuração de compilação e especifica o conjunto de trabalhadores no comando:

gcloud builds submit --config=CONFIG_FILE
  --worker-pool=projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID

Substitua os valores dos marcadores de posição nos comandos acima pelo seguinte:

  • CONFIG_FILE: caminho para o ficheiro de configuração de compilação.
  • PRIVATEPOOL_ID: o ID exclusivo da pool privada que especificou quando criou a pool privada.
  • PRIVATEPOOL_PROJECT_ID: o projeto onde se encontra o seu conjunto privado. Google Cloud
  • REGION: a região onde criou a sua pool privada.

O que se segue?