Berikan string ke pekerjaan Jenkins dari Slack


12

Dalam dunia yang ideal, karyawan kami yang kurang berpengetahuan teknologi hanya dapat menggunakan perintah Slack untuk menjalankan pekerjaan dan mendapatkan hasilnya kembali kepada mereka, meniadakan penggunaan GUI Jenkins. Saya menemukan Mulai membangun di Jenkins menggunakan Slack Command di GitHub, tetapi ada beberapa keterbatasan termasuk yang tampaknya memerlukan rasio Heroku 1: 1 untuk pekerjaan Jenkins, yang tidak bagus untuk tujuan kita.

Pemikiran saya adalah membuat orang menggunakan perintah tunggal seperti /jenkins, dan menggunakan parameter setelahnya yang akan diuraikan oleh satu pekerjaan, dan digunakan untuk memulai yang lain di hilir. Itu menjaga kita untuk satu perintah kendur / satu contoh, tetapi masih memberi kita semua fleksibilitas yang kita butuhkan.

Masalahnya jatuh pada mendapatkan parameter ke Jenkins. Saya membayangkan sesuatu seperti alur kerja berikut;

  1. Jenis pengguna /Jenkins job2 param1 param2di Slack. Ini memanggil pekerjaan payung yang akan mengurai parameter untuk mencari tahu apa yang harus dijalankan.

  2. Perintah entah bagaimana dikirim ke pekerjaan payung jenkins. Contoh Heroku, integrasi langsung, w / e.

  3. Pekerjaan payung menerima job2 param1 param2sebagai string. (Mungkin sebagai nilai parameter tunggal, mungkin pra-bagi menjadi beberapa bidang)

  4. Pekerjaan payung membagi string jika belum dilakukan, dan mengetahui bahwa pengguna ingin job2menjalankan, menggunakan parameter param1dan param2.

  5. Pekerjaan payung melakukan buildjob untuk menjalankan pekerjaan hilir seperti yang disebut, yang akan memperlambat kembali ke pengguna hasil mereka.

Langkah 2-3 yang membuat saya tersandung. Bagaimana saya bisa meneruskan string (dengan spasi!) Dari Slack ke pekerjaan Jenkins saya?

Jika seluruh premis saya salah, saya juga terbuka untuk mempertanyakan bingkai saya.

Jawaban:


5

Plugin yang Anda temukan tidak memiliki rasio 1: 1 antara instance Heroku dengan build jobs karena mengambil nama job sebagai parameter, jadi Anda harus dapat menjalankan sejumlah pekerjaan dari instance Heroku tunggal.

Sedangkan untuk melewatkan spasi dalam parameter pekerjaan, kata split dibuat pada spasi sehingga mengutip tidak akan mengubah apa pun. Anda mungkin dapat mencoba menggunakan karakter spasi HTML %20dan melihat apakah itu berfungsi?

Secara pribadi saya akan mencoba menggunakan plugin untuk menjalankan pekerjaan yang benar dengan parameter terkait secara langsung alih-alih melalui pekerjaan penyaringan.


1
Tepatnya, pemisahan pada spasi dibuat beberapa baris di atas tautan Anda, saya tidak menggali cukup untuk mengonfirmasi atau tidak akan membagi pada semua spasi, tapi sepertinya itu akan menjadi buruk
Tensibai

Anda benar, terpecah pada spasi oleh baris ini github.com/joshdholtz/jenkins-slack-command/blob/master/... jadi tidak masalah jika ada tanda kutip atau tidak di sekitar parameter
Michael Pereira

Parameter Yep diulang dan dipecah lagi pada = ini akan pecah jika nilai berisi spasi, menggunakan% 20 dapat bekerja ketika diposting ke slack, tetapi itu harus diuji karena saya tidak tahu bagaimana Jenkins atau slack dapat menguraikan atau menyimpannya
Tensibai
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.