一千萬個為什麽

搜索

將字符串傳遞給Slack的Jenkins作業



在理想的世界中,我們技術知識較少的員工只需使用Slack命令來運行作業並將結果放回給他們,否定使用Jenkins GUI。我在GitHub上發現了這個,但它有一些限制,包括它似乎需要一個Heroku實例與Jenkins工作的比例為1:1,這對我們的目的並不好。

我的想法是讓人們使用像/jenkins 這樣的單一命令,並使用後面的參數,這些參數將被一個作業解析,並用於啟動其他下遊的其他參數。這使我們保持一個松散的命令/一個實例,但仍然給我們所有我們需要的靈活性。

問題在於將參​​數傳遞給Jenkins。我想像下面的工作流程;

  1. 用戶在Slack中輸入/Jenkins job2 param1 param2 。這就是所謂的雨傘作業,它將解析參數以找出運行的內容。

  2. 命令以某種方式發送給詹金斯的工作。 Heroku實例,直接集成,w/e。

  3. <�傘>作業接收 job2 param1 param2 作為字符串。 (也許作為單個參數的值,也許預先分成多個字段)如果尚未完成,傘作業將拆分字符串,並使用參數 param1指出用戶希望job2 運行> param2的</代碼>。 傘作業會執行buildjob來調用下遊作業,這會將用戶的結果放回給用戶。

It's steps 2-3 that are tripping me up. How can I pass a string (with spaces!) from Slack to my Jenkins job?

如果我的整個前提都是錯誤的,我也很樂意讓我的框架受到挑戰。

轉載註明原文: 將字符串傳遞給Slack的Jenkins作業

一共有 1 個回答:

您發現的插件與構建作業之間的Heroku實例之間​​沒有1:1的比率,因為它將作業名稱作為參數,所以您應該可以從單個Heroku實例運行任意數量的作業。

至於在工作參數中傳遞空間,分詞是在空間上所以引用不會改變任何東西。您可以嘗試使用HTML間距字符%20 並查看它是否有效?

就我個人而言,我會嘗試使用插件直接運行正確的作業和相關參數,而不是通過篩選作業。