[英]How to make Jenkins execute job only for the files that triggered build?
我有一個svn倉庫和一份詹金斯(Jenkins)工作,負責其中的工作。 使用Jenkins svn插件的“包含區域”功能,我可以配置Jenkins輪詢某些文件夾或文件類型中的更改。 但這是為了觸發工作。 當實際作業開始執行時,我如何知道其更改觸發了構建的文件是什么?
如果只有一次提交會觸發構建,那么我可以輕松地從shell腳本中的svn log中提取答案。 但是,如果有數量不明的提交導致我的詹金斯工作開始,那我就麻煩了。
我之所以這樣問,是因為我希望我的詹金斯(Jenkins)工作僅對那些更改觸發構建的文件進行某些分析。
一次推送多個提交也可以執行腳本。 所以我認為您已經遇到麻煩了。 因此,請在job的工作空間中維護一個文件,以便最后的每個版本都將保存其commit id
。 在您的腳本中,現在檢查從提交到當前( HEAD
)的差異,並根據約束檢查文件中的更改。 如果滿足所有條件,現在就可以工作。 希望這可以幫助。
我認為這可能是固定的,但以防萬一,還有Jenkins的“ Last Changes插件”。
https://github.com/jenkinsci/last-changes-plugin
這使該環境中的內容與要推送的內容有所區別,並為您提供結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.