In einer idealen Welt könnten unsere weniger technisch versierten Mitarbeiter einfach einen Slack-Befehl verwenden, um einen Job auszuführen und die Ergebnisse an sie zurückzuliefern, was die Verwendung der Jenkins-GUI negiert. Ich habe festgestellt, dass das Starten eines Builds in Jenkins mithilfe eines Slack-Befehls auf GitHub einige Einschränkungen aufweist, einschließlich der Tatsache, dass eine Heroku-Instanz im Verhältnis 1: 1 für Jenkins-Jobs erforderlich ist, was für unsere Zwecke nicht besonders gut ist.
Mein Gedanke ist, dass Leute einen singulären Befehl wie verwenden /jenkins
und danach Parameter verwenden, die von einem Job analysiert und verwendet werden, um andere stromabwärts zu starten. Das hält uns an einem losen Befehl / einer Instanz fest, gibt uns aber trotzdem die Flexibilität, die wir brauchen.
Das Problem besteht darin, die Parameter an Jenkins weiterzuleiten. Ich stelle mir so etwas wie den folgenden Workflow vor.
Benutzer gibt
/Jenkins job2 param1 param2
Slack ein. Dies ruft einen Umbrella-Job auf, der die Parameter analysiert, um herauszufinden, was ausgeführt werden soll.Der Befehl wird irgendwie an den Regenschirm-Jenkins-Job gesendet. Heroku-Instanz, direkte Integration, w / e.
Regenschirmjob wird
job2 param1 param2
als Zeichenfolge empfangen . (Vielleicht als Wert eines einzelnen Parameters, vielleicht in mehrere Felder aufgeteilt)Umbrella-Job teilt die Zeichenfolge auf, falls dies noch nicht geschehen ist, und ermittelt
job2
anhand der Parameterparam1
und , ob der Benutzer sie ausführen möchteparam2
.Umbrella-Job führt einen Buildjob aus, um den aufgerufenen Downstream-Job auszuführen, der dem Benutzer die Ergebnisse zurückgibt.
Es sind die Schritte 2-3, die mich auslösen. Wie kann ich eine Zeichenfolge (mit Leerzeichen!) Von Slack an meinen Jenkins-Job übergeben?
Wenn meine gesamte Prämisse falsch ist, bin ich auch offen dafür, meinen Rahmen herausfordern zu lassen.