Dizeyi Slack'ten Jenkins işine aktar


12

İ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;

  1. /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.

  2. Komuta bir şekilde şemsiye jenkins işine gönderilir. Heroku örneği, doğrudan entegrasyon, w / e.

  3. Ş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)

  4. Ş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

  5. Ş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.

Yanıtlar:


5

Bulduğunuz eklentinin, iş adını parametre olarak alması nedeniyle Heroku örneği ile derleme işleri arasında 1: 1 oranı yoktur, bu nedenle tek bir Heroku örneğinden istediğiniz sayıda işi çalıştırabilmeniz gerekir.

Bir iş parametresinde bir boşluk geçirmeye gelince, split kelimesi boşluklarda yapılır, bu nedenle tırnak işareti hiçbir şeyi değiştirmez. HTML boşluk karakterini kullanmayı deneyebilir %20ve çalışıp çalışmadığını görebilirsiniz?

Şahsen ben filtre işlerini yerine doğrudan ilişkili parametreleri ile doğru işi çalıştırmak için eklentiyi kullanmaya çalışacağız.


1
Kesin olmak gerekirse, boşluklardaki bölünme bağlantınızın birkaç satır üzerinde yapılır, onaylamak için yeterince kazmadım ya da değil tüm alanlarda bölünecek, ama kulağa benziyor gibi görünüyor
Tensibai

Doğru, bu çizgi üzerinde boşluklara bölünmüş github.com/joshdholtz/jenkins-slack-command/blob/master/… bu yüzden parametrelerin çevresinde tırnak olup olmadığı önemli değil
Michael Pereira

Yep parametreleri döngüye sokuldu ve tekrar bölündü = bir değer boşluklar içeriyorsa kırılacak,% 20 kullanılarak gevşekliğe gönderildiğinde işe yarayabilir, ancak test edilmesi gerekir, çünkü Jenkins veya gevşekliğin nasıl ayrıştırılabileceği veya saklanabileceği hakkında hiçbir fikrim yok
Tensibai
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.