Criar repositórios do GitLab

O Cloud Build permite criar gatilhos para criar repositórios hospedados no GitLab. É possível executar builds em resposta a eventos como pushes de commit ou solicitações de mesclagem associadas ao seu repositório do GitLab.

Nesta página, explicamos como ativar gatilhos de build para uma instância do GitLab. Para mais informações, consulte Gatilhos do Cloud Build e Repositórios do Cloud Build.

Antes de começar

Siga as instruções para se conectar a um host do GitLab.
  • Enable the Cloud Build and Secret Manager APIs.

    Enable the APIs

Para criar um gatilho para um repositório do GitLab, você precisa ter uma conexão entre Google Cloud e seu repositório. Para criar uma conexão pelo app do GitLab em Google Cloud, consulte Conectar a um repositório do GitLab.

Criar um gatilho do GitLab

Nesta seção, explicamos como criar um gatilho e vinculá-lo à instalação do GitLab.

Google Cloud console

Para criar gatilhos do GitLab usando o console Google Cloud , faça o seguinte:

  1. Acesse a página Gatilhos:

    Abrir a página Acionadores

  2. Selecione seu projeto Google Cloud na parte de cima da página e clique em Abrir.

  3. Clique em Criar gatilho.

  4. Preencha as configurações de gatilho a seguir:

    • Nome: nome do acionador.

    • Região: selecione a região do seu gatilho.

      • Se o arquivo de configuração de build associado ao gatilho especificar um pool particular, o Cloud Build usará o pool particular para executar o build. Nesse caso, a região especificada no gatilho precisa corresponder à região em que você criou o pool particular.
      • Se o arquivo de configuração de build associado ao gatilho não especificar um pool particular, o Cloud Build usará o pool padrão para executar o build na mesma região do gatilho.

    • Descrição (opcional): uma descrição do gatilho.

    • Evento: selecione o evento de repositório para invocar seu gatilho.

      • Enviar para uma ramificação: defina o gatilho para iniciar um build em confirmações de uma ramificação específica.

      • Enviar nova tag por push: configure o gatilho para iniciar um build em confirmações que contenham uma tag específica.

      • Solicitação de pull: configure o gatilho para iniciar uma build em confirmações para uma solicitação de mesclagem.

    • Origem: configure informações sobre seu repositório do GitLab:

      • Serviço de repositório: selecione Cloud Build.

      • Geração de repositório: selecione Developer Connect como sua origem.

      • Repositório: na lista de repositórios disponíveis, selecione o repositório.

      • Ramificação ou Tag: especifique uma expressão regular correspondente ao valor da ramificação ou da tag. Para ver informações sobre a sintaxe aceitável de expressões regulares, consulte Sintaxe de RE2 (em inglês).

      • Controle de comentários: se você selecionou Solicitação de envio como seu Evento, escolha uma das seguintes opções para controlar se um build é executado automaticamente pelo gatilho:

        • Obrigatório, exceto para proprietários e colaboradores: quando uma solicitação de envio é criada ou atualizada por um proprietário ou colaborador de repositório, os builds são executados automaticamente pelo gatilho. Se um colaborador externo iniciar a ação, os builds serão executados somente depois que um proprietário ou colaborador comentar a /gcbrun na solicitação de envio.

        • Obrigatório: quando uma solicitação de envio é criada ou atualizada por qualquer colaborador, os builds só são executados depois que um proprietário ou colaborador comenta /gcbrun na solicitação de envio. Os builds são executados sempre que uma mudança é feita em uma solicitação de envio.

        • Não necessário: quando uma solicitação de envio é criada ou atualizada por qualquer colaborador, os builds são executados automaticamente por gatilhos.

    • Configuração: selecione o arquivo de configuração do build localizado no seu repositório ou configure o build inline no gatilho.

      • Type: selecione o tipo de configuração a ser usado para o build.

        • Arquivo de configuração do Cloud Build (yaml ou json): use um arquivo de configuração do build na sua configuração.
        • Dockerfile: use um Dockerfile para sua configuração.
      • Local: especifique o local de configuração.

        • Repositório: se o arquivo de configuração estiver no seu repositório, forneça o local do arquivo de configuração do build ou o diretório Dockerfile e um nome para a imagem resultante. Se sua configuração for um Dockerfile, você poderá fornecer um tempo limite para a criação. Depois de fornecer o Dockerfile e o nome da imagem, você verá uma visualização do comando docker build que sua o build executará.

        • Inline: se você selecionou o arquivo de configuração do Cloud Build (yaml ou json) como opção de configuração, pode especificar a configuração do build inline. Clique em Abrir editor para gravar o arquivo de configuração do build no Google Cloud console usando a sintaxe YAML ou JSON. Clique em Concluído para salvar a configuração do build.

  5. Clique em Criar para criar o gatilho do GitLab Enterprise Edition.

CLI da gcloud

Para criar gatilhos do GitLab usando comandos gcloud, execute o seguinte comando:

    gcloud alpha builds triggers create developer connect
      --name=TRIGGER_NAME \
      --git-repository-link=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/gitRepositoryLinks/REPO_NAME \
      --branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
      --build-config=BUILD_CONFIG_FILE \
      --region=REGION \
      --service-account=SERVICE-ACCOUNT

Em que:

  • TRIGGER_NAME é o nome do gatilho.
  • PROJECT_ID é o ID do projeto Google Cloud .
  • REGION é a região do gatilho.
  • CONNECTION_NAME é o nome da sua conexão com o GitLab.
  • GIT_REPOSITORY_LINK é o link para seu repositório Git.
  • BRANCH_PATTERN é o nome da ramificação no seu repositório para invocar o build.
  • TAG_PATTERN é o nome da tag no repositório para invocar o build.
  • BUILD_CONFIG_FILE é o caminho para seu arquivo de configuração da compilação.
  • SERVICE-ACCOUNT é a conta de serviço a ser usada para operações de gatilho e build.

API

Para criar um gatilho do GitLab com a API, use o modelo JSON a seguir:

{
    "filename": "cloudbuild.yaml",
    "name": "curl-trigger",
    "description": "curl trigger",
    "developer_connect_config" { 
      "git_repository_link": "PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/gitRepositoryLinks/REPO_NAME",
      "git_repository_link_type": "GITLAB",
      // Field filter must be only one of the following:
      "pullRequest": "PULL_REQUEST_FILTER",
      "push": "PUSH_FILTER"
   }
}

Em que:

  • PROJECT_ID é o ID do projeto Google Cloud .
  • REGION é a região do gatilho.
  • CONNECTION_NAME é o nome da sua conexão com o GitLab.
  • GIT_REPOSITORY_LINK é o link para seu repositório Git.
  • "REPO_NAME" é o nome do repositório.
  • "PULL_REQUEST_FILTER" é uma instância de PullRequestFilter, que define o filtro que permite ao Cloud Build acionar uma build quando uma solicitação de envio correspondente é feita no GitLab.
  • "PUSH_FILTER" é uma instância de PushFilter, que define o filtro que permite ao Cloud Build acionar uma build quando um push correspondente é feito no GitLab.

Insira o seguinte comando curl no terminal:

  curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/triggers -d @trigger.json

Em que:

  • PROJECT_NUMBER é o número do projeto Google Cloud .
  • PROJECT_ID é o ID do projeto Google Cloud .

Compartilhamento de dados

Os dados enviados ao GitLab pelo Cloud Build ajudam a identificar gatilhos por nome e ver os resultados da versão nos repositórios do GitLab.

Os seguintes dados são compartilhados entre o Cloud Build e seu host do GitLab:

  • ID do projetoGoogle Cloud
  • Nome do gatilho

A seguir