我需要一种通过Jenkins脚本控制台设置“扫描组织触发器”的方法。这很接近,但是仅显示多分支或组织扫描触发器(如果已存在):
https://github.com/cloudbees/jenkins-
scripts/blob/master/setOrgFolderIndex.groovy
这是我制作的可检测多分支或组织触发器的脚本。如果项目尚不存在,它将创建一个触发器。注意:addTrigger部分已被注释掉,因此按原样运行应该是安全的。
import com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger
import jenkins.model.Jenkins
import jenkins.branch.OrganizationFolder
import hudson.model.Job
projects = [:]
Jenkins.instance.getAllItems(AbstractItem.class).each { j ->
String jc = j.class.simpleName
if(!(jc in projects)) {
projects[jc] = 0
}
projects[jc]++
}
println "Count projects by type for: " + Jenkins.getInstance().getRootUrl()
println " Current Jenkins version: " + Jenkins.getInstance().version
projects.each { type, count ->
println " ${type}: ${count}"
}
println "\n-------Organization Items-------"
Jenkins.instance.getAllItems(jenkins.branch.OrganizationFolder.class).each { j ->
String jobName = j.fullName
Integer triggerCount = j.triggers.findAll { k,v -> v instanceof com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger}.size()
if (triggerCount > 0) {
myInterval = j.triggers.findAll { k,v -> v instanceof com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger}
.each { k,v -> println " trigger count: ${triggerCount} Interval: ${v.getInterval()}, jobName: ${jobName}" }
}
else {
def newInterval = new PeriodicFolderTrigger("1d")
println " trigger count: ${triggerCount} Interval: NULL, jobName: ${jobName}"
//println " creating trigger for ${jobName}"
//j.addTrigger(newInterval)
//j.save()
}
}
println "\n-------Multibranch Items-------"
Jenkins.instance.getAllItems(org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject.class).each { j ->
String jobName = j.fullName
Integer triggerCount = j.triggers.findAll { k,v -> v instanceof com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger}.size()
if (triggerCount > 0) {
myInterval = j.triggers.findAll { k,v -> v instanceof com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger}
.each { k,v -> println " trigger count: ${triggerCount} Interval: ${v.getInterval()}, jobName: ${jobName}" }
}
else {
def newInterval = new PeriodicFolderTrigger("1d")
println " trigger count: ${triggerCount} Interval: NULL, jobName: ${jobName}"
//println " creating trigger for ${jobName}"
//j.addTrigger(newInterval)
//j.save()
}
}
return
问题内容: 我正在尝试设置脚本以增加Xcode项目的内部版本号。我进行了一次API调用以获取当前的内部版本号,然后我希望对其进行递增,然后将该新的版本号用作环境变量,以便Xcode插件可以使用它。 我安装了EnvInject插件,但是我不知道如何将var从我的shell脚本中获取到环境变量中。 这设置为我需要的值,但是如何将其分配给环境变量,以便以后在工作中访问它? 问题答案: 添加一个构建步骤以
问题内容: 在我的jenkins管道文件中,我使用从.json文件读取构建配置。但是,这引入了需要 在进程内“脚本批准” 页面上批准的代码。通过GUI执行此操作时,效果很好。 但是,我还有一个脚本会自动设置我的jenkins机器,该机器将创建不需要任何GUI操作即可使用的现成机器。该脚本已使用jenkins脚本控制台批准从属启动命令。在脚本控制台中执行此操作的常规代码如下所示。 效果很好,但现在我
这个问题似乎被问了多次,但所有答案都与Jenkins Pipeline jobs(插件:workflow job)有关。 我正在将一堆旧的自由式作业从旧的Jenkins独立服务器迁移到分布式Jenkinsenv,我决定将它们转换为Jenkins管道作业(不能使用Blue Ocean,因为SCM是SVN。 无论如何,对于某些作业来说,不希望清理它们的工作空间,因为它们是某种健全/验证作业,而且因为S
问题内容: 嗨,我是新手,我想知道在控制台中读取用户Input的最佳选择是什么,据我所知有3种方法可以做到: 我应该选择哪一个?为什么选择一个而不选择另一个? 问题答案: 缓冲读取器 从Java 1.1开始 引发检查异常 可以读取字符,字符数组和行 快速 扫描器 从Java 1.5开始 不抛出检查异常 可以读取行,空格分隔的标记,正则表达式分隔的标记和数字 难以阅读单个字符 安慰 从Java 1.
问题内容: 我正在尝试设置要触发的版本的版本说明,因为我正在启动该版本,到目前为止我还没有运气。 我遇到了一个解决方案将文本添加到由Jenkins远程API触发的构建页面中,我有点以这种方式工作(第一个命令将启动构建,第二个命令将设置最后一个的描述)建立): 但是,问题是,如果我刚刚启动的构建被排队/没有立即启动,“ lastBuild”将不引用我刚刚启动的构建,而是之前的那个(仍在构建中)。 所
从jenkins脚本控制台,我如何启动一个工作的构建? 尝试过: 错误:groovy.lang.MisSingMEDORDION:没有方法的签名:hudson.model.FreeStyleProject.startBuild()适用于参数类型:()值:[]