Comment gérer Jenkins à partir de Slack

 Anton Smirnov
23 août 2020 * 6 min de lecture

L’automatisation des tests ne consiste pas seulement à automatiser l’application. Je dirais que même le partage des résultats des tests par programme avec l’équipe fait partie de l’automatisation des tests. Ainsi, l’équipe ne dépend d’aucun individu pour obtenir les résultats. L’équipe peut également prendre d’autres mesures en fonction des résultats des tests sans délai.

Dans cet article, nous allons voir comment nous pouvons partager les résultats des tests dans Slack. Aussi comment vous pouvez déclencher une exécution automatisée de la suite de tests dans votre outil Jenkins / CI.

Slack

Nous utilisons Slack dans notre organisation. Vous pouvez également utiliser Slack pour communiquer des informations entre les membres de l’équipe de votre organisation. Slack est un excellent outil qui tient tout le monde au courant et réduit les e-mails inutiles.

Slack est un hub de collaboration pour le travail, quel que soit votre travail. C’est un endroit où les conversations ont lieu, où les décisions sont prises et où l’information est toujours à portée de main. Avec Slack, votre équipe est mieux connectée.
Vous pouvez utiliser cette application on-off.site

Intégration de l’application Slack—Jenkins CI

Je suppose que la plupart d’entre nous utilisent Jenkins pour des tests automatisés continus. Donc, dans cet article, j’ai fourni les étapes pour intégrer Jenkins et Slack. Si vous utilisez d’autres outils comme TeamCity, Bamboo, etc., le processus sera toujours presque le même.

Mou:

  • Accédez à https://slack.com
  • Recherchez l’application ‘Jenkins’
  • Installez l’application Jenkins CI dans votre slack
  • Cliquez sur ‘Ajouter une configuration’

  • Notez le domaine d’équipe et le jeton
  • Sélectionnez le canal où nous voulons poser les résultats

Jenkins

  • Allez dans Gérer Jenkins – > Gérer les plugins – > Onglet disponible
  • Installer Slack Plugin de notification
  • Mettre à jour le domaine Slack et le jeton = > Gérer Jenkins – > Configurer le système – > Paramètres globaux du notificateur Slack

  • Cliquez sur « Tester la connexion » — Vous devriez voir le message « succès » dans Jenkins et le message ci-dessous dans le canal slack.

Jenkins – Job de test

  • Créez un job Jenkins pour le test
  • Mettez à jour les actions post-build comme indiqué ici — avec le message personnalisé que vous souhaitez

Pipeline Jenkins

Vous devez ajouter un appel au plugin

slackSend color: 'good', message: 'Message from Jenkins Pipeline'

Ensuite, nous devons déterminer la couleur et le texte d’information corrects du message:

def notifySlack(String buildStatus = 'STARTED') {
// Build status of null means success.
buildStatus = buildStatus ?: 'SUCCESS'
def color
if (buildStatus == 'STARTED') {
color = '#D4DADF'
} else if (buildStatus == 'SUCCESS') {
color = '#BDFFC3'
} else if (buildStatus == 'UNSTABLE') {
color = '#FFFE89'
} else {
color = '#FF9FA1'
}
def msg = "${buildStatus}: `${env.JOB_NAME}` #${env.BUILD_NUMBER}:\n${env.BUILD_URL}"
slackSend(color: color, message: msg)
}
node {
try {
notifySlack()
sh 'runbuild'
} catch (e) {
currentBuild.result = 'FAILURE'
throw e
} finally {
notifySlack(currentBuild.result)
}
}

Résumé

Dans le cadre du processus de test continu, nous exécutons périodiquement les scripts automatisés à l’aide de Jenkins. Vous seul, en tant qu’ingénieur de test, connaissez principalement les résultats. D’autres membres de l’équipe pourraient ne pas être au courant des résultats du test. En utilisant des outils automatisés, nous pouvons créer des scripts automatisés, et en utilisant l’API Slack, nous pouvons partager les résultats par programmation.

Création d’un nouvel utilisateur

Commençons par créer un nouvel utilisateur dans Jenkins pour que slack puisse l’utiliser. Notez le jeton API.

L’hypothèse est que cet utilisateur slack a suffisamment d’accès pour déclencher la tâche.

Exécutez la commande CURL ci-dessous pour vérifier si l’utilisateur peut appeler la tâche.

C’est le format de l’URL. Remplacez le contenu à l’intérieur par des informations appropriées.

curl -X POST http://@/job//build

Dans mon cas, j’ai essayé comme indiqué ici.

curl -X POST http://slack:[email protected]:8080/job/TEST_SMOCK_SLACK_JOB_DEMO/build

Commande Slack—Slash

Pour appeler le travail Jenkins ci-dessus, nous utiliserions les commandes slash de Slack. Ainsi, chaque fois que vous tapez quelque chose après une barre oblique — par exemple: ‘/smoketests’ — Slack le traitera comme une commande et pourra répondre à la commande. Ainsi, par exemple, Slack peut être configuré pour fournir un bulletin météo pour votre ville.

Pour appeler le travail Jenkins ci-dessus, nous utiliserions les commandes slash de Slack. Ainsi, chaque fois que vous tapez quelque chose après une barre oblique — par exemple: ‘/smoketests’ — Slack le traitera comme une commande et pourra répondre à la commande. Ainsi, par exemple, Slack peut être configuré pour fournir un bulletin météo pour votre ville.

  • Accédez à votre configuration Slack pour ajouter une configuration Slash.
  • Je vais créer une commande de test de fumée — afin que mon équipe puisse déclencher un test de fumée à partir de slack pour vérifier l’intégrité de l’application.

  • Ajoutez le paramètre d’intégration comme indiqué ici. Fournissez l’URL que nous devons appeler pour déclencher le travail Jenkins.

  • Sélectionnez l’aide auto-complète

  • Une fois la configuration terminée, vous pouvez vérifier immédiatement dans votre Slack. Tapez simplement ‘/s’ — vous pouvez voir la commande ‘smoketest’

  • Appelez la commande — Vérifiez si Jenkins est capable de déclencher le travail.

  • Si la tâche nécessite un paramètre, utilisez le format d’URL ci-dessous pour appeler la tâche avec les paramètres par défaut.
curl -X POST http://@/job//buildWithParameters
  • Si vous devez passer un paramètre spécifique, ajoutez simplement la variable et la valeur dans le paramètre.
curl -X POST http://@/job//buildWithParameters?ENVIRONMENT=UAT
  • Pour obtenir le statut/résultat de la tâche, celle-ci doit être configurée pour afficher les résultats dans Slack. Vous pouvez consulter un article à ce sujet ici.

Note

  • Pour que l’approche ci-dessus fonctionne, votre serveur Jenkins doit être accessible par Slack. Assurez-vous qu’il n’est pas bloqué par le pare-feu.

Résumé

Les commandes Slack sont très utiles et utiles pour obtenir des informations ou déclencher quelque chose que vous pourriez faire fréquemment. Ce faisant, tout utilisateur non technique de l’équipe pourrait vous faire utiliser vos scripts de test automatisés en appelant directement la commande slash.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.