Gates bâtis sur l'approbation

Cloud Build vous permet de configurer des déclencheurs qui n'exécutent pas immédiatement de compilation, mais marquent une compilation comme en attente jusqu'à ce qu'elle soit approuvée. Si un utilisateur disposant d'autorisations approuve une compilation en attente, celle-ci démarre. Si l'approbation est refusée, la compilation ne démarrera pas.

Cette page explique comment approuver ou rejeter manuellement des compilations. Pour savoir comment configurer un déclencheur qui nécessite une approbation, consultez la page Créer un déclencheur de compilation.

Avant de commencer

  • Activez l'API Cloud Build

    Activer l'API

  • Installez la CLI Google Cloud.

  • Si ce n'est pas déjà fait, créez un déclencheur de compilation configuré pour exiger une approbation.

Accord d'autorisations...

Si un utilisateur dispose du rôle Éditeur Cloud Build, il est autorisé à mettre à jour un déclencheur pour exiger ou non une approbation. Pour en savoir plus sur les autorisations Cloud Build, consultez la page IAM et autorisations. Pour autoriser un utilisateur à approuver des compilations dans votre projet, il doit disposer du rôle Validateur Cloud Build.

Pour ajouter le rôle Validateur Cloud Build, procédez comme suit:

  1. Ouvrez la page IAM dans Google Cloud Console.

    Ouvrir la page IAM

  2. Cliquez sur Ajouter.

    Le panneau Ajouter des comptes principaux s'affiche.

  3. Dans la section Nouveaux comptes principaux, ajoutez des utilisateurs pour leur accorder les autorisations qui leur permettent d'autoriser les compilations en attente dans votre projet.

    Vous devez ajouter un ou plusieurs comptes principaux dans cette section. Si vous vous ajoutez en tant que compte principal, notez que vous devrez toujours approuver manuellement une compilation en attente si votre déclencheur est contrôlé par une approbation.

  4. Dans la section Rôle, sélectionnez Cloud Build > Validateur Cloud Build.

Les utilisateurs que vous avez spécifiés peuvent désormais approuver ou rejeter les compilations en attente.

Approuver des compilations

Console

Pour approuver une compilation en attente dans Google Cloud Console:

  1. Ouvrez la page Cloud Build Dashboard de Google Cloud Console.

    Ouvrir la page du tableau de bord Cloud Build

  2. Si des compilations sont en attente d'approbation, un message s'affiche en haut de la page avec le nombre de compilations en attente d'approbation. À droite du message, cliquez sur Afficher les compilations pour afficher la liste des compilations en attente d'approbation.

  3. Cochez les cases des compilations que vous souhaitez approuver. Vous pouvez sélectionner plusieurs compilations à approuver ou une compilation individuelle à approuver.

  4. En haut de la page, cliquez sur Approuver pour valider les compilations sélectionnées.

  5. Avant le début de la compilation, la boîte de dialogue Approuver la compilation s'affiche. Dans la boîte de dialogue, vous pouvez ajouter un message facultatif et une URL à afficher avec l'approbation de la compilation. Pour inclure une URL, cliquez sur Afficher des options supplémentaires pour saisir une URL.

  6. Dans la boîte de dialogue, cliquez sur Approve (Approuver) pour approuver la compilation.

Une fois la compilation approuvée, la compilation démarre immédiatement. Si la règle d'administration (constraints/cloudbuild.allowedIntegrations) refuse l'accès au dépôt connecté, la règle remplace l'approbation. Pour en savoir plus, consultez l'article Limiter les compilations déclenchées à partir de services externes.

gcloud

Pour approuver une compilation en attente à l'aide de gcloud commands, exécutez la commande suivante dans la fenêtre de votre terminal:

gcloud alpha builds approve BUILD_ID \
  --project=PROJECT_ID \
  --url=URL \
  --comment=COMMENT

Remplacez les valeurs d'espace réservé dans les commandes ci-dessus par les éléments suivants :

  • BUILD_ID est l'ID de la compilation que vous souhaitez approuver.
  • PROJECT_ID est l'ID de votre projet.
  • [Facultatif] URL est l'URL contenant des informations sur l'approbation, telles qu'un lien vers un ticket JIRA.
  • [Facultatif] COMMENT est le message que vous souhaitez afficher après l'approbation de la compilation.

Une fois la compilation approuvée, la compilation démarre immédiatement. Si la règle d'administration permettant de définir des builds pour les intégrations autorisées (constraints/cloudbuild.allowedIntegrations) est définie, cette règle remplace l'approbation. Pour en savoir plus, consultez la section Appliquer une règle d'administration pour créer des déclencheurs.

Refuser les compilations

Console

Pour refuser une compilation en attente dans Google Cloud Console:

  1. Ouvrez la page Cloud Build Dashboard de Google Cloud Console.

    Ouvrir la page du tableau de bord Cloud Build

  2. Si des compilations sont en attente d'approbation, un message s'affiche en haut de la page avec le nombre de compilations en attente d'approbation. À droite du message, cliquez sur Afficher les compilations pour afficher la liste des compilations en attente d'approbation.

  3. Vous pouvez sélectionner plusieurs compilations à rejeter ou une compilation individuelle à rejeter. Cochez les cases correspondant aux compilations que vous souhaitez refuser.

  4. Cliquez sur Refuser en haut de la page pour rejeter la compilation.

Si vous refusez une compilation, celle-ci ne démarre pas.

gcloud

Pour rejeter une compilation en attente à l'aide de gcloud commands, exécutez la commande suivante dans la fenêtre de votre terminal:

gcloud alpha builds reject BUILD_ID \
  --project=PROJECT_ID \
  --url=URL \
  --comment=COMMENT

Remplacez les valeurs d'espace réservé dans les commandes ci-dessus par les éléments suivants :

  • BUILD_ID est l'ID de la compilation que vous souhaitez rejeter.
  • PROJECT_ID est l'ID de votre projet.
  • [Facultatif] URL est l'URL contenant des informations sur le refus, telles qu'un lien vers un ticket JIRA.
  • [Facultatif] COMMENT est le message que vous souhaitez afficher en cas de refus de la compilation.

Si vous refusez une compilation, celle-ci ne démarre jamais.

Recevoir des notifications pour les compilations en attente d'approbation

Vous pouvez utiliser les systèmes d'alerte Cloud Build pour recevoir des notifications sur les compilations en attente à l'aide du système d'alerte géré par Cloud Build, par exemple :Slack ou le serveur SMTP, ou en créant votre propre système d'alerte.

Pour configurer les notifications, procédez comme suit:

  1. Suivez les instructions fournies sur l'une des pages suivantes pour configurer les notifications pour le service souhaité:

  2. Lorsque vous configurez des notifications à l'aide de l'une des pages ci-dessus, vous devez configurer votre système d'alerte pour filtrer les compilations à l'état PENDING. Vous recevrez des notifications concernant les compilations en attente d'approbation. Dans l'exemple de fichier de configuration du système d'alerte SMTP suivant, le champ de filtre utilise le CEL (Common Expression Language) pour filtrer les événements de compilation à l'état PENDING:

    apiVersion: cloud-build-notifiers/v1
    kind: SMTPNotifier
    metadata:
      name: example-smtp-notifier
    spec:
      notification:
        filter: build.status == Build.Status.PENDING
        delivery:
          server: example.gmail.com
          port: 0000
          sender: sender@example.com
          ...
    

    Pour afficher cet exemple, consultez le fichier de configuration du système d'alerte pour le système d'alerte SMTP.

  3. Pour déployer votre système d'alerte, exécutez la commande gcloud run dans votre terminal. L'exemple suivant déploie le système d'alerte SMTP à l'aide de Cloud Run.

    gcloud run deploy example.gmail.com \
      --image=us-east1-docker.pkg.dev/gcb-release/cloud-build-notifiers/smtp:latest \
      --update-env-vars=CONFIG_PATH=smtp.yaml, PROJECT_ID=my-project
    

Vous devriez maintenant recevoir des notifications pour les compilations en attente vers votre service.

Étapes suivantes