Intégration des notifications WeChat Work pour les builds Jenkins

Ce guide technique détaille l'utilisation du plugin de notification WeChat Work (Qy Wechat Notification) pour Jenkins, permettant d'envoyer des alertes automatisées concernent l'état des builds directement dans vos groupes WeChat Work. Il couvre les étapes d'installation, la configuration des webhooks et l'intégration dans les projets Freestyle et Pipeline.

1. Installation du plugin dans Jenkins

1.1 Prérequis système

  • Jenkins : Version 2.303.1 ou supérieure.
  • WeChat Work (企业微信) : Version 2.8.7 ou supérieure.

1.2 Procédure d'installation

  1. Accédez à votre interface d'administration Jenkins.
  2. Naviguez vers « Gérer Jenkins » (Manage Jenkins) puis « Gérer les plugins » (Manage Plugins).
  3. Dans l'onglet « Plugins disponibles » (Available), recherchez Qy Wechat Notification.
  4. Cochez la case à côté du plugin trouvé et cliquez sur « Installer sans redémarrer » ou « Télécharger maintenant et installer après le redémarrage ». Il est recommandé de redémarrer Jenkins pour s'assurer que le plugin est correctement initialisé.

2. Configuration du Webhook WeChat Work

Pour que Jenkins puisse envoyer des notifications, vous devez d'abord créer un robot de groupe dans WeChat Work et obtenir son URL de webhook :

  1. Dans une discussion de groupe WeChat Work, faites un clic droit sur le nom du groupe.
  2. Sélectionnez l'option pour ajouter un robot (généralement nommée « Ajouter un robot » ou similaire).
  3. Suivez les instructions pour créer le robot. WeChat Work vous fournira une URL de webhook unique, qui sera l'interface de réception des notifications. Conservez cette URL précieusement.

3. Intégration des notifications dans les projets Jenkins

3.1 Pour les projets de type Freestyle

  1. Ouvrez la configuration de votre projet Freestyle Jenkins.
  2. Dans la section « Actions post-build » (Post-build Actions), cliquez sur « Ajouter une action post-build » et choisissez « Configuration de la notification WeChat Work » (Qy Wechat Notification Configuration).
  3. Collez l'URL du webhook obtenue à l'étape précédente dans le champ dédié. Vous pouvez également configurer des options supplémentaires telles que la notification en cas d'échec, les utilisateurs à mentionner (par ID ou numéro de mobile) et des informations additionnelles.

3.2 Pour les projets de type Pipeline

Dans un script de Pipeline Jenkins, la notification peut être configurée dans le bloc post pour s'exécuter en fonction de l'état du build (succès, échec, etc.). Voici un exemple de configuration :


pipeline {
    agent any

    stages {
        stage('Initialisation') {
            steps {
                echo 'Démarrage de la phase de compilation...'
                // Vos étapes de build ici
            }
        }
        stage('Test') {
            steps {
                echo 'Exécution des tests unitaires...'
                // Vos étapes de test ici
            }
        }
    }
    post {
        success {
            // Notification en cas de succès du build
            qyWechatNotification(
                webhookUrl: 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=VOTRE_CLE_DE_WEBHOOK',
                notifierEnCasEchec: false, // Inutile ici, car c'est un succès
                utilisateurCibleId: 'user_devops,user_qa', // IDs d'utilisateurs à mentionner (séparés par des virgules)
                numeroMobileCible: '13800138000', // Numéros de mobile à mentionner (séparés par des virgules)
                informationsSupplementaires: 'Build Jenkins réussi avec brio !'
            )
        }
        failure {
            // Notification en cas d'échec du build
            qyWechatNotification(
                webhookUrl: 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=VOTRE_CLE_DE_WEBHOOK',
                notifierEnCasEchec: true,
                utilisateurCibleId: '@all', // Mentionner tous les membres du groupe
                informationsSupplementaires: 'Le build Jenkins a échoué. Veuillez vérifier les logs.'
            )
        }
        always {
            // Notification envoyée quelle que soit l'issue du build
            // qyWechatNotification(webhookUrl: '...', informationsSupplementaires: 'Build terminé.')
        }
    }
}

Paramètres disponibles pour qyWechatNotification :

  • webhookUrl (String, requis) : L'URL du webhook de votre robot de groupe WeChat Work.
  • notifierEnCasEchec (boolean, facultatif) : Définit si une notification doit être envoyée spécifiquement en cas d'échec. Par défaut à false.
  • utilisateurCibleId (String, facultatif) : Liste des IDs d'utilisateurs WeChat Work à @mentionner dans la notification. Séparez plusieurs IDs par des virugles. Utilisez @all pour mentionner tous les membres du groupe.
  • numeroMobileCible (String, facultatif) : Liste des numéros de téléphone mobile à @mentionner. Séparez plusieurs numéros par des virgules.
  • informationsSupplementaires (String, facultatif) : Texte additionnel à inclure dans le message de notification.

4. Comportement des notifications

Une fois configuré, le robot de groupe WeChat Work envera des notifications aux moments clés du cycle de vie de votre build Jenkins :

  • Début du build : Une alerte est envoyée au démarrage du processus de construction.
  • Succès du build : Une notification de succès est envoyée si le build se termine sans erreur.
  • Échec du build : Une notification d'échec est émise en cas de problème lors du build, souvent accompagnée des détails configurés.

5. Développement et Empaquetage du Plugin (pour les contributeurs)

Ces instructions sont destinées aux développeurs souhaitant contribuer au plugin ou le tester en local :

5.1 Lancement pour le développement avec Maven


mvn org.jenkins-ci.tools:maven-hpi-plugin:run

Cette commande démarre une instance de Jenkins embarquée avec le plugin chargé.

5.2 Accès à l'instance Jenkins locale

Après le démarrage, Jenkins sera accessible via votre navigateur à l'adresse suivante :


http://127.0.0.1:8080/jenkins

5.3 Débogage du plugin

Pour activer le débogage à distance, définissez la variable d'environnement MAVEN_OPTS avant d'exécuter la commande Maven :


export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n"

Puis lancez la commande de développement.

5.4 Empaquetage du plugin

Pour créer le fichier .hpi (Jenkins Plugin) distribuable :


mvn package

Le fichier .hpi sera généré dans le répertoire target/ de votre projet.

Étiquettes: Jenkins WeChatWork Notification pipeline plugin

Publié le 30 juillet à 00h30