Notification du statut de l'exécution d'un pipline avec un bot Discord sur Drone

Publié le 09/11/2021

J'ai récemment rencontré un soucis avec mon instance de Drone.io, puisque les certificats étaient expirés.

Comme d'habitude avec Drone, tout fonctionne avec des containers Docker. Joie (et cotillons! 🕺), il en existe un: drone-discord (comme c'est original).

Ajout d'une étape au pipeline

) L'objectif est d'arriver à recevoir un message indiquant le statut du build.

En adaptant le pipeline à partir de la documentation, j'arrive à ceci:

  - name: discord notification
    image: appleboy/drone-discord
    settings:
      webhook_id:
        from_secret: discord_webhook_id
      webhook_token:
        from_secret: discord_webhook_token
      message: >
        {{#success build.status}}
          build {{build.number}} succeeded. Good job.
        {{else}}
          build {{build.number}} failed. Fix me please.
        {{/success}}
    when:
      status:
        - failure
        - success

Assignation des variables d'environnement

Dans la configuration ci-dessus, on s'attend à avoir deux variables d'environnement:

  • discord_webhook_id
  • discord_webhook_token

Ces variables peuvent être récupérées au niveau de la configuration du salon de Discord, puis configurées au niveau de Drone.

Un webhook se présente de la manière suivante : https://discord.com/api/webhooks/<webhook_id>/<webhook_token>.

Résultat

Après configuration des variables, cela donne ceci 😋