2013-11-01 17 views
8

由於特殊的提交消息模式,是否可以取消或跳過Jenkins中的作業?我認爲作業配置中的「Excluded Commit comments」選項爲我開箱即可,例如here。但是不管我在這個領域寫出哪個正則表達式,構建仍然是執行的。Jenkins:避免因提交消息而生成

例如: 只有在提交消息包含表達式「release」的情況下,我纔想執行構建作業。所以我在Excluded Commit comments域中寫了正則表達式[^(?: release)]。我想如果我提交一個修訂版本,例如「測試提交」構建作業不執行,對吧?這是不使用post-commit hook時的正確方法嗎?

+0

你試過簡單的表達式嗎?不管有多簡單,都儘量排除任何匹配。 – hofan41

回答

4

Jenkins Git插件公開了環境變量GIT_COMMIT哪個當然包含當前的git commit散列。 用[詹金斯條件步驟]並建立其執行以下bash外殼的工序:

echo "===========================" 

if [ "git show $GIT_COMMIT | grep "your-pattern-here" == false ] ; then 
     echo "pattern failed"; 
     exit 1 
else 
     echo "ok" 
fi 

echo "===========================" 

和標記,如果殼失敗,失敗的構建。

+1

我認爲上面的代碼很接近,但不完全正確。這是什麼對我來說... 'code' if [[$(git show $ GIT_COMMIT | grep「[string to skip commit]」| wc -m)-ne 0]];那麼 回聲「跳過這個提交」 退出0 否則 回聲「可以建立」 fi '代碼' – adampasz

3

晚答覆,但可能有助於有人在將來, 有根據的git提交信息跳過構建一個插件,只包含在提交信息junkin一個[CI-跳過]將跳過構建

jenkins-ci-skip-plugin