在Jenkins GitHub(v1.28.0)插件组织的Configuration
页面上,有一个部分可以设置Jenkins定期扫描该组织。我不希望Jenkins定期建立PR或分支机构,因此已关闭此选项。
但是,这并没有更改组织内存储库上的选项。在存储库中,有一个View Configuration
选项,该选项仍会显示出来。
我可以在此处取消选中该选项,但是没有没有保存按钮,并且View Configuration
的确听起来像是只读的。即使我从Jenkins配置中删除了存储库,然后重新添加它,它仍然会显示选中的框。
如何阻止Jenkins在这些存储库上自动运行构建?
答案 0 :(得分:1)
您可以做的是保留组织本身的触发器,并禁用“子级扫描触发器”。因此,您最终会遇到这样的事情。
但是,如果您取消选中“如果不运行则定期运行”,则您的子触发器(存储库本身)将被禁用。
这应该防止自动触发组织回购。但是,此解决方案不是防弹的。如果您的Jenkins重新启动,则存储库触发器将执行并执行分支索引编制,而分支索引又将触发构建。
答案 1 :(得分:0)
虽然在UI中无法执行此操作,但是您可以使用Groovy脚本来执行此操作。
// Update the PeriodicFolderTrigger of each job inside of a Cloudbees folder.
// Useful for updating individual repos as you cannot do this through the UI.
// Adapted from https://github.com/cloudbees/jenkins-scripts/blob/6eb3bfe58b2c87081966b77f91b0be06da7daad3/setOrgFolderIndex.groovy
import com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger
import jenkins.model.Jenkins
import jenkins.branch.OrganizationFolder
println "Multibranch Items\n-------"
Jenkins.instance.getAllItems(org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject.class).each { it.triggers
.findAll { k,v -> v instanceof com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger }
.each { k,v -> setInterval(it) }
}
def setInterval(folder) {
println "[INFO] : Updating ${folder.name}... "
folder.getTriggers().find {triggerEntry ->
def key = triggerEntry.key
if (key instanceof PeriodicFolderTrigger.DescriptorImpl){
println "[INFO] : Current interval : " + triggerEntry.value.getInterval()
// Valid intervals are here:
// https://github.com/jenkinsci/cloudbees-folder-plugin/blob/master/src/main/java/com/cloudbees/hudson/plugins/folder/computed/PeriodicFolderTrigger.java#L261-L278
def newInterval = new PeriodicFolderTrigger("28d")
folder.addTrigger(newInterval)
folder.save()
println "[INFO] : New interval : " + newInterval.getInterval()
}
}
}