Créer des dépôts à partir de GitLab Enterprise Edition

Cloud Build vous permet de créer des déclencheurs pour compiler des dépôts hébergés sur GitLab Enterprise Edition. Vous pouvez exécuter des compilations en réponse à des événements tels que des transferts de commits ou des demandes de fusion associés à votre dépôt GitLab Enterprise Edition.

Cette page explique comment activer les déclencheurs de compilation pour une instance GitLab Enterprise Edition. Pour en savoir plus, consultez Déclencheurs Cloud Build et Dépôts Cloud Build.

Avant de commencer

Suivez les instructions pour vous connecter à un hôte GitLab Enterprise Edition.
  • Activez les API Cloud Build et Secret Manager, si ce n'est pas déjà fait.

    Rôles requis pour activer les API

    Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer les API

Pour créer un déclencheur pour un dépôt GitLab Enterprise Edition, vous devez établir une connexion entre Google Cloud et votre dépôt. Pour créer une connexion via l'application GitLab Enterprise Edition dans Google Cloud, consultez Se connecter à un dépôt GitLab Enterprise Edition.

Créer un déclencheur GitLab Enterprise Edition

Cette section explique comment créer un déclencheur et l'associer à votre installation GitLab Enterprise.

Console Google Cloud

Pour créer des déclencheurs GitLab Enterprise Edition à l'aide de la console Google Cloud  :

  1. Ouvrez la page Déclencheurs :

    Ouvrir la page Déclencheurs

  2. Sélectionnez votre projet  Google Cloud en haut de la page, puis cliquez sur Ouvrir.

  3. Cliquez sur Créer un déclencheur.

  4. Entrez les paramètres de déclencheur suivants :

    • Nom : nom de votre déclencheur.

    • Région : sélectionnez la région de votre déclencheur.

      • Si le fichier de configuration de compilation associé au déclencheur spécifie un pool privé, Cloud Build utilise ce pool privé pour exécuter votre compilation. Dans ce cas, la région que vous spécifiez dans votre déclencheur doit correspondre à celle dans laquelle vous avez créé votre pool privé.
      • Si le fichier de configuration de compilation associé au déclencheur ne spécifie pas de pool privé, Cloud Build utilise le pool par défaut pour exécuter votre compilation dans la même région que votre déclencheur.

    • Description (facultatif) : description de votre déclencheur.

    • Événement : sélectionnez l'événement lié au dépôt qui appelle votre déclencheur.

      • Déployer sur une branche : configurez votre déclencheur pour lancer une compilation sur les commits réalisés dans une branche spécifique.

      • Transférer le nouveau tag : configurez votre déclencheur pour lancer une compilation sur des commits contenant un tag particulier.

      • Demande d'extraction : définissez votre déclencheur pour démarrer une compilation sur les commits d'une demande de fusion.

    • Source : configurez les informations sur votre dépôt GitLab Enterprise Edition :

      • Service de dépôt : sélectionnez Cloud Build.

      • Génération de dépôt : sélectionnez Deuxième génération comme source.

      • Dépôt : dans la liste des dépôts disponibles, sélectionnez le dépôt.

      • Branche ou tag : spécifiez une expression régulière à laquelle faire correspondre la valeur de la branche ou du tag. Pour en savoir plus sur la syntaxe des expressions régulières acceptables, consultez la page Syntaxe RE2.

      • Contrôle des commentaires : si vous avez sélectionné Demande d'extraction comme Événement, choisissez l'une des options suivantes pour contrôler si une compilation est automatiquement exécutée par le déclencheur :

        • Requis sauf pour les propriétaires et les collaborateurs : lorsqu'une demande d'extraction est créée ou mise à jour par un propriétaire ou un collaborateur du dépôt, les compilations sont automatiquement exécutées par le déclencheur. Si un contributeur externe lance l'action, les compilations ne sont exécutées qu'après qu'un propriétaire ou un collaborateur a commenté /gcbrun la demande d'extraction d'extraction.

        • Obligatoire : lorsqu'un contributeur crée ou met à jour une demande d'extraction d'extraction, les compilations ne sont exécutées qu'après qu'un propriétaire ou un collaborateur a commenté /gcbrun la demande d'extraction d'extraction. Les compilations sont exécutées chaque fois qu'une modification est apportée à une demande d'extraction;extraction.

        • Non requis : lorsqu'une demande d'extraction est créée ou mise à jour par un contributeur, les compilations sont automatiquement exécutées par des déclencheurs.

    • Configuration : sélectionnez le fichier de configuration de compilation situé dans votre dépôt ou configurez votre compilation en ligne sur le déclencheur.

      • Type: sélectionnez le type de configuration à utiliser pour votre compilation.

        • Fichier de configuration Cloud Build (yaml or json) : utilisez un fichier de configuration de compilation pour votre configuration.
        • Dockerfile : utilisez un fichier Dockerfile pour votre configuration.
      • Emplacement: spécifiez l'emplacement de votre configuration.

        • Repository (Dépôt) : Si votre fichier de configuration se trouve dans votre dépôt, indiquez l'emplacement de votre fichier de configuration de compilation ou du répertoire Dockerfile, ainsi qu'un nom pour l'image obtenue. Si votre configuration est un Dockerfile, vous pouvez éventuellement fournir un délai d'expiration pour votre compilation. Une fois le fichier Dockerfile et le nom de l'image fournis, vous obtenez un aperçu de la commande docker build que votre compilation va exécuter.

        • Intégré: si vous avez sélectionné Fichier de configuration Cloud Build (yaml ou json) comme option de configuration, vous pouvez spécifier votre configuration de compilation de manière intégrée. Cliquez sur Ouvrir l'éditeur pour écrire votre fichier de configuration de compilation dans la consoleGoogle Cloud en utilisant la syntaxe YAML ou JSON. Cliquez sur OK pour enregistrer la configuration de compilation.

  5. Cliquez sur Créer pour créer votre déclencheur GitLab Enterprise Edition.

CLI gcloud

Pour créer des déclencheurs GitLab Enterprise Edition à l'aide de commandes gcloud, exécutez la commande suivante :

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

Où :

  • TRIGGER_NAME correspond au nom de votre déclencheur.
  • PROJECT_ID est l'ID de votre projet Google Cloud .
  • REGION est la région de votre déclencheur.
  • CONNECTION_NAME par le nom de votre connexion GitLab Enterprise Edition.
  • REPO_NAME est le nom de votre dépôt.
  • BRANCH_PATTERN est le nom de la branche de votre dépôt sur lequel appeler la compilation.
  • TAG_PATTERN est le nom du tag de votre dépôt sur lequel appeler la compilation.
  • BUILD_CONFIG_FILE correspond au chemin d'accès à votre fichier de configuration de compilation.
  • SERVICE-ACCOUNT correspond au compte de service à utiliser pour les opérations de déclenchement et de compilation.

API

Pour créer un déclencheur GitLab Enterprise Edition avec l'API, utilisez le modèle JSON suivant :

{
    "filename": "cloudbuild.yaml",
    "name": "curl-trigger",
    "description": "curl trigger",
    "repository_event_config": {
      "repository": "REPO_NAME",
      "repository_type": "GITLAB_ENTERPRISE",
      // Field filter must be only one of the following:
      "pullRequest": "PULL_REQUEST_FILTER",
      "push": "PUSH_FILTER"
    }
}

Où :

  • "REPO_NAME" est le nom de la connexion au dépôt que vous avez configurée dans Cloud Build.
  • "PULL_REQUEST_FILTER" est une instance de PullRequestFilter, qui définit le filtre permettant à Cloud Build de déclencher une compilation lorsqu'une demande d'extraction correspondante est effectuée dans GitLab Enterprise Edition.
  • "PUSH_FILTER" est une instance de PushFilter, qui définit le filtre permettant à Cloud Build de déclencher une compilation lorsqu'un transfert correspondant est effectué dans GitLab Enterprise Edition.

Saisissez la commande curl suivante dans votre 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

Où :

  • PROJECT_NUMBER est le numéro de votre projet Google Cloud .
  • PROJECT_ID est l'ID de votre projet Google Cloud .

Partage des données

Les données envoyées à GitLab Enterprise Edition depuis Cloud Build vous aident à identifier les déclencheurs par leur nom et à afficher les résultats de compilation dans vos dépôts GitLab Enterprise Edition.

Les données suivantes sont partagées entre Cloud Build et votre hôte GitLab Enterprise Edition :

  • ID du projetGoogle Cloud
  • Nom du déclencheur

Étapes suivantes