İdeal bir dünyada, daha az bilgili çalışanlarımız, bir işi yürütmek ve sonuçların kendilerine geri dönmesini sağlamak için Slack komutunu kullanabilir ve Jenkins GUI'nin kullanımını reddedebilir. GitHub'da bir Slack Komutunu kullanarak Jenkins'te bir derleme başlatmayı buldum , ancak 1: 1 oranlı Heroku örneğinin Jenkins işine ihtiyaç duyduğu da dahil olmak üzere birkaç sınırlama var, bu da bizim amaçlarımız için harika değil.
Benim düşüncem, insanların tek bir komut /jenkins
kullanmaları ve bundan sonra bir iş tarafından ayrıştırılacak ve diğerlerini aşağı yönde başlatmak için kullanılan parametreleri kullanmalarıdır. Bu bizi bir gevşek emri / bir örneği tutar, ama yine de bize ihtiyacımız olan tüm esnekliği verir.
Sorun, parametreleri Jenkins'e almada düşer. Aşağıdaki iş akışı gibi bir şey hayal ediyorum;
/Jenkins job2 param1 param2
Slack kullanıcı türleri . Bu, ne çalıştırılacağını öğrenmek için parametreleri ayrıştıracak bir şemsiye işi çağırıyor.Komuta bir şekilde şemsiye jenkins işine gönderilir. Heroku örneği, doğrudan entegrasyon, w / e.
Şemsiye işi
job2 param1 param2
bir dize olarak alır . (Belki de tek bir parametrenin değeri olarak, belki birden fazla alana önceden bölünmüş olabilir)Şemsiye işi henüz yapılmadıysa dizeyi böler ve kullanıcının ve
job2
parametrelerini kullanarak çalıştırmak istediğini anlar .param1
param2
Şemsiye işi, aşağı doğru işi çağrıldığı gibi çalıştırmak için bir buildjob yapar, bu da kullanıcıya sonuçlarını Slack yapar.
Beni harekete geçiren 2-3. Adımlar. Slack'ten Jenkins işime nasıl bir dize (boşluklarla!) Geçirebilirim?
Tüm öncülüm yanlışsa, çerçeveme meydan okumaya da açığım.