您可以使用fileIsImportant
選項來檢查文件的變化中存在,如果這個文件被改變了,那麼認爲的變化不重要,這會導致Buildbot不安排構建。所以:
def fileIsImportant(change):
if ".skipbuild" in change.files:
return False
# There could be more logic here to test other things...
然後您註冊調度程序是這樣的:
c['schedulers'].append(SingleBranchScheduler(
name="foo",
change_filter=filter.ChangeFilter(project="foo", branch="master",
repository=url),
treeStableTimer=300,
fileIsImportant=fileIsImportant,
builderNames=["foo-build"]))
通過上面的代碼,任何承諾,其中有一個名爲.skipbuild
文件的變化(出現在根目錄的文件您的存儲庫)不會導致構建進度計劃。我使用與上述代碼類似的東西來進行自己的Buildbot配置。
另一種選擇是檢查提交消息。與顧名思義相反fileIsImportant
確實是否確定更改是否重要,而不僅僅是一個文件。所以:
def fileIsImportant(change):
if "[skipbuild]" in change.comments:
return False
# There could be more logic here to test other things...
有了這個功能,如果提交信息有文本[skipbuild]
,更改將不會安排構建。
我更喜歡第一個選項,因爲a)它不會污染提交消息,b)我發現在文件庫根目錄中更改文件更容易,並且更改它比記住我需要放入什麼魔法文本提交消息以跳過構建。