İ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 /jenkinskullanmaları 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 param2Slack 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 param2bir 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
job2parametrelerini kullanarak çalıştırmak istediğini anlar .param1param2Ş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.