Dans un monde idéal, nos employés moins compétents en technologie pourraient simplement utiliser une commande Slack pour exécuter un travail et obtenir des résultats qui leur sont relâchés, annulant l'utilisation de l'interface graphique Jenkins. J'ai trouvé Démarrer une génération dans Jenkins en utilisant une commande Slack sur GitHub, mais il y a quelques limitations, notamment le fait qu'il semble nécessiter une instance Heroku au rapport 1: 1 pour le travail Jenkins, ce qui n'est pas génial pour nous.
Ma pensée est que les gens utilisent une commande singulière comme /jenkins
, et utilisent ensuite des paramètres qui seront analysés par un travail et utilisés pour lancer d'autres en aval. Cela nous maintient à une commande / une instance lâche, mais nous donne toujours toute la flexibilité dont nous avons besoin.
Le problème réside dans l'obtention des paramètres à Jenkins. J'imagine quelque chose comme le flux de travail suivant;
Types d'utilisateurs
/Jenkins job2 param1 param2
dans Slack. Cela appelle un travail parapluie qui analysera les paramètres pour savoir quoi exécuter.La commande est en quelque sorte envoyée au travail de parapluie jenkins. Instance Heroku, intégration directe, w / e.
Le travail parapluie reçoit
job2 param1 param2
une chaîne. (Peut-être comme la valeur d'un seul paramètre, peut-être pré-divisé en plusieurs champs)Le travail parapluie divise la chaîne si ce n'est pas déjà fait et détermine que l'utilisateur veut
job2
exécuter, en utilisant les paramètresparam1
etparam2
.Le travail parapluie fait un buildjob pour exécuter le travail en aval comme appelé, ce qui ramènera à l'utilisateur ses résultats.
Ce sont les étapes 2-3 qui me font trébucher. Comment passer une chaîne (avec des espaces!) De Slack à mon travail Jenkins?
Si toute ma prémisse est fausse, je suis également prêt à voir mon cadre remis en question.