Criar repositórios do GitLab Enterprise Edition

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

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

Antes de começar

  • Enable the Cloud Build and Secret Manager APIs.

    Enable the APIs

Para criar um gatilho para um repositório do GitLab Enterprise Edition, é necessário ter uma conexão entre Google Cloud e o repositório. Para criar uma conexão pelo Developer Connect, consulte Conectar ao GitLab Enterprise Edition na documentação do Developer Connect.

Criar um gatilho do GitLab Enterprise Edition

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

Console do Google Cloud

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

  1. Acesse a página Gatilhos:

    Abrir a página Acionadores

  2. Selecione o Google Cloud projeto 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 acionador.

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

    • 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 acionador para iniciar um build em confirmações para uma solicitação de mesclagem.

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

      • Serviço de repositório: selecione o Developer Connect.
      • 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 será 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 /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 obrigató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 repositório, forneça o local do arquivo de configuração do build ou do 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 consoleGoogle Cloud 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 Enterprise Edition 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 Google Cloud projeto.
  • REGION é a região do acionador.
  • CONNECTION_NAME é o nome da sua conexão do GitLab Enterprise Edition.
  • 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 acionar e criar operações.

API

Para criar um acionador do GitLab Enterprise Edition com a API, use o seguinte modelo JSON:

{
    "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_ENTERPRISE",
      // Field filter must be only one of the following:
      "pullRequest": "PULL_REQUEST_FILTER",
      "push": "PUSH_FILTER"
   }
}

Em que:

  • PROJECT_ID é o ID do Google Cloud projeto.
  • REGION é a região do acionador.
  • CONNECTION_NAME é o nome da sua conexão do GitLab Enterprise Edition.
  • 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 que o Cloud Build acione uma versão quando uma solicitação de envio correspondente é feita no GitLab Enterprise Edition.
  • "PUSH_FILTER" é uma instância de PushFilter, que define o filtro que permite que o Cloud Build acione um build quando um push correspondente é feito no GitLab Enterprise Edition.

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 Google Cloud projeto.
  • PROJECT_ID é o ID do Google Cloud projeto.

Compartilhamento de dados

Os dados enviados do Cloud Build para o GitLab Enterprise Edition ajudam a identificar gatilhos por nome e conferir os resultados da versão nos repositórios do GitLab Enterprise Edition.

Os dados a seguir são compartilhados entre o Cloud Build e o host do GitLab Enterprise Edition:

  • ID do projetoGoogle Cloud
  • Nome do gatilho

A seguir