2015-05-04 24 views
4

我們即將擦除Mac Mini並從頭重新安裝新的XCode和Jenkins。我們剛剛開始使用Slack,我們想用它來接收Jenkins構建通知並啓動Jenkins構建。使用Slack啓動Jenkins構建

So Slack通知,沒問題。所有的工作。

我試圖用Slack開始構建時遇到了問題。

本教程(http://sonnguyen.ws/how-to-trigger-a-jenkins-build-from-slack/)解釋了使用Slack的斜槓命令的一種方法。但是我們的Mac Mini在我們的內部網絡上。到目前爲止,我們已經使用Skype自動使用這個sevabot與Jenkins一起構建。

含弱,流行的選擇似乎是使用斜線命令,但是....我仍然有一些問題,因爲這是我第一次設置這個東西了:

  1. 我們應該用斜槓命令方法,並具有某種類型的領導者/追隨者的方法,如下所述:http://i-phone-dev.blogspot.de/2013/07/jenkin-build-xcode-project-in-mac-slave.html
  2. 是否有使用Slack Outgoing Webhooks或Slackbot功能的更多sevabot風格的方法?

只是尋找一些關於這個東西的易用性,可擴展性,可維護性等方面的指導和一些人們已經成功的樣本設置。

謝謝。

回答

4

所以我最終使用斯萊克的斜槓命令,字符串分析做出來,這樣的回答:How to set environment variables in Jenkins?

詹金斯插件我用:

  1. 預SCM-建立
  2. EnvInject插件
  3. 構建授權令牌根插件

我配置了我的S缺少斜槓命令來撥打https://my-jenkins-server//buildByToken/buildWithParameters?job=JOB_NAME&token=MY_SECRET_TOKEN。所以,當我輸入'/ build_my_app branch_name project_param2'時,我在slash命令後面輸入的文本將作爲URL參數(本例中爲'branch_name project_param2')發送。

一旦它到達另一邊,我需要將這個'text'參數分成多個環境變量,Jenkins可以使用這些變量來構建過程。爲了實現這一點,我添加了兩個pre-scm構建步驟。

預SCM生成步驟1是一個「執行殼」命令,其由下面的腳本的:

build_parameters=($text) 

echo BRANCH=${build_parameters[0]} > props 
echo PARAM2=${build_parameters[1]} >> props 

「道具」是我用來存儲所解析的串的文件,如試圖設置在這個步驟中使用'export'的環境變量失敗了,因爲當構建實際開始時,env變量不會持久。該腳本將$ text參數存儲在一個字符串數組中(由空格字符分隔),並且他們只是引用數組的每個索引以獲取我想要的變量。需要一個新的工作參數?只需在這裏添加另一行。

Pre-scm構建步驟2是「注入環境變量」作業,在「屬性文件路徑」中,我只需指定'$ WORKSPACE/props'。然後用我解析的env變量讀取文件並將它們注入到作業環境中。

所以是的,無需創建任何webapps手動解析'text'參數,然後調用另一個URL,其中包含在URL中單獨設置的所有參數。不必爲每個可能的參數組合製作一百萬個不同的Jenkins作業。

希望這可以節省一些人的時間!

+2

我嘗試了相同的方法,但它返回404。 404的原因很明顯,我的詹金斯不允許查看/觸發任何作業,直到您登錄它。 其中一個解決方案可能是讓詹金斯的工作訪問匿名用戶,但有什麼辦法,我可以避免這種情況? – Aditya