Créer des dépôts à partir de Bitbucket Server

Cloud Build vous permet de créer des déclencheurs pour compiler à partir de dépôts hébergés sur un serveur Bitbucket. Vous pouvez ainsi exécuter des compilations en réponse à des événements tels que des transferts de commit ou des requêtes d'extraction associés à votre dépôt Bitbucket Server.

Cette page explique comment activer la fonctionnalité de déclencheur sur une instance de serveur Bitbucket.

Avant de commencer

  • Activer les API Cloud Build, Secret Manager, and Compute Engine.

    Activer les API

Créer un déclencheur Bitbucket Server

Cette section explique comment connecter vos dépôts Bitbucket Server à Cloud Build et créer un déclencheur pour appeler automatiquement des compilations sur vos dépôts connectés. Si vous souhaitez utiliser des déclencheurs Bitbucket Server dans un réseau privé, consultez la section Créer des dépôts à partir d'un serveur Bitbucket dans un réseau privé pour obtenir des instructions supplémentaires.

Console

Pour créer un déclencheur Bitbucket Server à l'aide de la console Google Cloud, procédez comme suit:

  1. Ouvrez la page Déclencheurs :

    Ouvrir la page Déclencheurs

  2. Sélectionnez votre projet 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 du déclencheur.

      • Si vous sélectionnez la région global, Cloud Build utilise le pool par défaut pour exécuter la compilation.
      • Si vous sélectionnez une région non mondiale et que le fichier de configuration de compilation associé au déclencheur spécifie un pool privé, Cloud Build utilise ce pool pour exécuter la 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 vous sélectionnez une région non mondiale et que 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: configurez votre déclencheur pour démarrer une compilation sur les commits d'une demande d'extraction d'extraction.

    • Source: sélectionnez la source 1re génération.

      • Dépôt: sélectionnez un dépôt dans la liste des dépôts disponibles. Pour vous connecter à un nouveau dépôt, consultez la section Se connecter à un dépôt Bitbucket Server.

      • Branche ou tag : spécifiez une expression régulière à laquelle faire correspondre la valeur de la branche ou du tag.

      • Commande de commentaire: si vous avez sélectionné Demande d'extraction en tant qu'événement, vous pouvez définir des paramètres pour déterminer si les événements autres que les commentaires nécessitent une interaction supplémentaire pour déclencher des compilations. Choisissez l'une des options suivantes pour déterminer si un build sera automatiquement exécuté par le déclencheur:

        • Obligatoire sauf pour les propriétaires et les collaborateurs: lorsqu'une demande d'extraction est créée ou mise à jour par un propriétaire de dépôt ou un utilisateur disposant d'autorisations d'écriture, les compilations sont automatiquement exécutées par le déclencheur. Si un contributeur externe lance l'action, les compilations ne seront exécutées qu'après qu'un propriétaire ou un utilisateur disposant des autorisations d'écriture /gcbrun a ajouté des commentaires sur la demande d'extraction d'extraction. Voir COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY.

        • Obligatoire: si un utilisateur disposant d'autorisations d'écriture crée une requête d'extraction et inclut /gcbrun dans sa description, la compilation s'exécute lors de la création de la demande d'extraction d'extraction. Lorsqu'une demande d'extraction est créée ou mise à jour par un autre contributeur, les compilations ne sont exécutées qu'après qu'un propriétaire ou un utilisateur disposant d'autorisations en écriture sur la demande d'extraction d'extraction a ajouté des commentaires /gcbrun. Voir COMMENTS_ENABLED.

        • 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. Consultez COMMENTS_DISABLED.

        Dans Bitbucket Server, les événements sans commentaire incluent des actions telles que l'ouverture, la modification et l'approbation des demandes d'extraction.

        Les événements de commentaire, qui incluent l'ajout, la modification et la suppression de commentaires, ne déclenchent des compilations que si le commentaire provient d'un utilisateur disposant d'autorisations d'écriture ou supérieure et que le commentaire contient /gcbrun.

        Pour en savoir plus sur les types d'événements Bitbucket Server, consultez la documentation de Bitbucket sur la gestion des webhooks.

    • Configuration: sélectionnez le fichier de configuration de compilation situé dans votre dépôt ou configurez votre build de manière intégrée au 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.

      • 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, et 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 Open Editor (Ouvrir l'éditeur) pour écrire votre fichier de configuration de compilation dans la console Google 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 Bitbucket Server.

gcloud

Pour créer un déclencheur Bitbucket Server à l'aide des commandes gcloud, vous devez exécuter la commande gcloud builds triggers create bitbucketserver suivante dans votre terminal:

gcloud builds triggers create bitbucketserver
    --name=TRIGGER_NAME \
    --project-key=PROJECT_KEY \
    --repo-slug=REPO_SLUG \
    --bitbucket-server-config-resource=projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/ID \
    --branch-pattern=BRANCH_NAME \ # --tag-pattern=TAG_NAME
    --build-config=BUILD_CONFIG

Où :

  • TRIGGER_NAME correspond au nom de votre déclencheur.
  • PROJECT_KEY est la clé de votre projet Bitbucket Server. PROJECT_KEY est sensible à la casse.
  • REPO_SLUG est le slug de votre dépôt Bitbucket Server. Pour en savoir plus, consultez le guide de Bitbucket sur les slugs de dépôt.
  • PROJECT_NUMBER est le numéro de votre projet Cloud.
  • REGION est la région associée à votre configuration Bitbucket Server.
  • ID est l'ID de votre BitbucketServerConfig.
  • BRANCH_NAME est une expression régulière qui correspond à votre branche si vous souhaitez définir votre déclencheur pour créer certaines branches.
  • TAG_NAME est une expression régulière qui correspond à votre balise si vous souhaitez configurer votre déclencheur pour créer certaines balises.
  • BUILD_CONFIG correspond au chemin d'accès à votre fichier de configuration de compilation.

API

Pour créer un déclencheur Bitbucket Server avec l'API, utilisez le modèle JSON suivant.

{
    "filename": "cloudbuild.yaml",
    "name": "curl-trigger",
    "description": "curl trigger",
    "bitbucket_server_trigger_config": {
        "repo_slug": "REPO_SLUG",
        "project_key": "PROJECT_KEY",
        "push": {
            "branch": "BRANCH_NAME" # "tag": "TAG_NAME"
        },
        "bitbucket_server_config_resource": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/ID"
        "comment_control": "COMMENT_SETTING"
    }
}

Où :

  • REPO_SLUG est le slug de votre dépôt Bitbucket Server. Pour en savoir plus, consultez le guide de Bitbucket sur les slugs de dépôt.
  • PROJECT_KEY est la clé de votre projet Bitbucket Server. PROJECT_KEY est sensible à la casse.
  • BRANCH_NAME est l'expression régulière de votre branche si vous souhaitez définir votre déclencheur pour créer certaines branches.
  • TAG_NAME est l'expression régulière de votre balise si vous souhaitez configurer votre déclencheur pour créer certaines balises.
  • PROJECT_NUMBER est le numéro de votre projet Cloud.
  • REGION est la région associée à votre configuration Bitbucket Server.
  • ID est l'ID de votre BitbucketServerConfig.
  • COMMENT_SETTING est le paramètre qui permet de contrôler si les déclencheurs de compilation requièrent /gcbrun dans un commentaire pour que la compilation s'exécute. Pour en savoir plus, consultez commentControl.

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 correspond à votre ID de projet Google Cloud.

Partage des données

Les données envoyées à Bitbucket Server depuis Cloud Build vous aident à identifier les déclencheurs par nom et à afficher les résultats des compilations sur Bitbucket Server.

Les données suivantes sont partagées entre Cloud Build et Bitbucket Server:

  • ID de projet Google Cloud
  • Trigger name

Le partage des données est automatiquement activé pour Bitbucket Server.

Étapes suivantes