ส่งผ่านสตริงไปยังงาน Jenkins จาก Slack


12

ในโลกอุดมคติพนักงานที่มีความรู้ด้านเทคโนโลยีน้อยของเราสามารถใช้คำสั่ง Slack เพื่อทำงานและรับผลลัพธ์ที่ได้กลับคืนมา ฉันพบเริ่มสร้างในเจนกินส์โดยใช้คำสั่ง Slackบน GitHub แต่ก็มีข้อ จำกัด บางประการรวมถึงดูเหมือนว่าจะต้องใช้อัตราส่วน 1: 1 Heroku กับงานเจนกินส์ซึ่งไม่ดีสำหรับวัตถุประสงค์ของเรา

ความคิดของฉันคือการให้คนใช้คำสั่งเอกพจน์เช่น/jenkinsและใช้พารามิเตอร์หลังจากนั้นจะแยกวิเคราะห์โดยงานหนึ่งและใช้เพื่อเตะคนอื่นดาวน์สตรีม ที่ทำให้เรามีคำสั่งหย่อน / ตัวอย่างหนึ่ง แต่ก็ยังให้ความยืดหยุ่นทั้งหมดที่เราต้องการ

ปัญหาตรงกับการรับพารามิเตอร์ของเจนกินส์ ฉันนึกภาพบางอย่างเหมือนเวิร์กโฟลว์ต่อไปนี้

  1. ประเภทผู้ใช้/Jenkins job2 param1 param2ใน Slack นี่คือการเรียกงานร่มที่จะแยกพารามิเตอร์เพื่อหาสิ่งที่จะเรียกใช้

  2. คำสั่งถูกส่งไปยังงานร่มเจนกินส์ ตัวอย่าง Heroku การรวมโดยตรงกับ w / e

  3. งาน Umbrella ได้รับjob2 param1 param2เป็นสตริง (อาจเป็นค่าของพารามิเตอร์เดียวอาจแบ่งล่วงหน้าเป็นหลายฟิลด์)

  4. งานร่มแยกสตริงถ้ามันยังไม่ได้ทำไปแล้วและตัวเลขให้เห็นว่าผู้ใช้ต้องการjob2เรียกใช้พารามิเตอร์และparam1param2

  5. งาน Umbrella จะสร้าง buildjob เพื่อเรียกใช้งานดาวน์สตรีมตามที่เรียกซึ่งจะทำให้ Slack กลับไปหาผู้ใช้งาน

มันเป็นขั้นตอน 2-3 ที่ทำให้ฉันสะดุด ฉันจะส่งผ่านสตริง (มีช่องว่าง!) จาก Slack ไปยังงาน Jenkins ของฉันได้อย่างไร

หากหลักฐานทั้งหมดของฉันผิดฉันก็เปิดรับเฟรมของฉันด้วย

คำตอบ:


5

ปลั๊กอินที่คุณพบไม่มีอัตราส่วน 1: 1 ระหว่างอินสแตนซ์ Heroku กับงานบิลด์เนื่องจากใช้ชื่องานเป็นพารามิเตอร์ดังนั้นคุณควรจะสามารถเรียกใช้งานจำนวนเท่าใดก็ได้จากอินสแตนซ์ Heroku เดียว

สำหรับการผ่านช่องว่างในพารามิเตอร์งานคำว่าแยกจะทำในช่องว่างเพื่อให้การอ้างอิงไม่เปลี่ยนแปลงอะไร คุณอาจลองใช้อักขระเว้นวรรค HTML %20และดูว่าใช้งานได้หรือไม่

ส่วนตัวฉันจะพยายามใช้ปลั๊กอินเพื่อเรียกใช้งานที่ถูกต้องด้วยพารามิเตอร์ที่เกี่ยวข้องโดยตรงแทนที่จะผ่านการกรองงาน


1
แน่นอนว่าการแบ่งช่องว่างนั้นสร้างขึ้นเหนือลิงก์ของคุณสองสามบรรทัดฉันไม่ได้ขุดพอที่จะยืนยันหรือไม่ว่าจะแยกในทุกช่องว่าง แต่ดูเหมือนว่ามันจะ
ผิดเพี้ยนไป

คุณถูกต้องมันถูกแบ่งในช่องว่างโดยบรรทัดนี้github.com/joshdholtz/jenkins-slack-command/blob/master/ ......ดังนั้นมันจะไม่สำคัญว่าจะมีคำพูดหรือไม่รอบพารามิเตอร์
Michael Pereira

พารามิเตอร์ Yep จะวนซ้ำและแยกอีกครั้งใน = ซึ่งจะแตกถ้าค่ามีช่องว่างการใช้% 20 อาจทำงานได้เมื่อโพสต์ไปที่หย่อน แต่ต้องทดสอบเพราะฉันไม่รู้ว่า Jenkins หรือหย่อนอาจแยกวิเคราะห์หรือเก็บไว้อย่างไร
Tensibai
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.