我有一个JobDSL脚本,它使用主动选择参数插件提供的主动选择参数创建了一个Jenkins管道作业。不幸的是,JobDSL不支持在沙盒中运行Active Choice Groovy脚本的参数(在UI中它是可用的),所以我试图通过configure block来启用它。
这是我的JobDSL脚本:
pipelineJob("my-pipeline") {
logRotator(-1, 10)
parameters {
activeChoiceParam('Branch') {
description('Lists branches for integration job')
filterable()
choiceType('SINGLE_SELECT')
groovyScript {
script("return ['The list of branches']")
fallbackScript("return ['Unable to list branches']")
}
}
activeChoiceReactiveParam('Build') {
description('Specifies which build from selected branch will be used for deployment. Only builds that contain Terraform plan are listed.')
choiceType('SINGLE_SELECT')
groovyScript {
script("return ['Selected build']")
fallbackScript("return ['Unable to list builds']")
}
referencedParameter('Branch')
}
activeChoiceReactiveReferenceParam('Artifacts') {
description('Lists artifacts from build specified')
choiceType('FORMATTED_HTML')
groovyScript {
script(scriptGen("return ['Job artifacts']")
fallbackScript("return ['Unable to list artifacts']")
}
referencedParameter('Branch')
referencedParameter('Build')
}
}
definition {
cpsScm {
scm {
git {
remote {
github('mainorg/my-repo', 'https', 'github.com')
credentials('my-creds')
}
branch('*/master')
}
}
scriptPath("ci/Jenkinsfile")
lightweight(true)
}
}
configure {
it / 'properties' / 'hudson.model.ParametersDefinitionPropert' / 'parameterDefinitions' / 'org.biouno.unochoice.ChoiceParameter' / 'script' / 'secureScript' {
'sandbox'('true')
}
}
}
使用配置
块,我正在尝试覆盖
下面是作业XML的链接,供参考:https://gist.github.com/vzabawski/aae51eddd45a51978224e403cc505b5b
activeChoiceParam
、activeChoiceReactiveParam
和 activeChoiceReactiveReferenceParam
函数是静态 API 的一部分。Job DSL的作者引入了动态API。每当可以使用动态 API 执行某些操作时,就不再支持负责相同逻辑的静态 API。
你应该阅读这些页面:
如何从静态 API 切换到动态 API 的示例:
activeChoiceParam('Branch') {
description('Lists branches for integration job')
filterable()
choiceType('SINGLE_SELECT')
groovyScript {
script("return ['The list of branches']")
fallbackScript("return ['Unable to list branches']")
}
}
↓
choiceParameter {
name('Branch')
description('Lists branches for integration job')
filterable(true)
choiceType('PT_SINGLE_SELECT')
script {
groovyScript {
script {
script("return ['The list of branches']")
sandbox(true)
}
fallbackScript {
script("return ['Unable to list branches']")
sandbox(true)
}
}
}
randomName('')
filterLength(0)
}
问题内容: 如何通过PHP脚本设置cron作业。 问题答案: 这将添加一个每天上午9:30运行的脚本。 如果从Web服务器运行此脚本,可能会遇到权限问题。为了解决这个问题,我建议使用另一种方法。 这是一种可能的解决方案。创建需要运行的脚本列表。您可以将其保存在文本文件或数据库中。创建一个脚本来读取此列表,并每分钟或每5分钟(使用cronjob)运行它。您的脚本将需要足够聪明,以决定何时运行脚本列表
问题内容: 很简单,我有要每月执行一次的节点脚本。 但这是行不通的,大概是因为该命令正在运行的路径或外壳。我尝试了以下通过cron执行节点的方法(已通过-v测试): 我没办法尝试了,有什么建议吗? 问题答案: 只需提供cron作业中node的完整路径即可,例如:
问题内容: 我正在尝试根据文档中的值创建动态参数。 我到目前为止在这里尝试过 这引发了以下错误: 我想使参数动态化,以便doc值确定要扣除的值。 使用ElasticSearch 7.2 一个复杂而糟糕的方法是使用以下脚本 Es对象: 问题答案: 您需要尝试不使用单引号。
我正在为maven类型的Jenkins作业编写DSL脚本。 https://jenkinsci.github.io/job-dsl-plugin/#path/mavenJob-性质 在上面链接的帮助下,我编写了几乎所有的DSL脚本,但找不到“构建和构建设置”步骤部分的DSL脚本(用于maven类型的作业)。 请帮助我如何在DSL脚本中提到上述两个步骤。
问题内容: 我有一个选择控件,并且在javascript变量中有一个文本字符串。 我想使用jQuery将select控件的selected元素设置为具有我的文本描述的项目(而不是我没有的值)。 我知道按值设置它是微不足道的。例如 但是我对通过文本描述进行操作感到有些困惑。我想一定有办法从文本描述中获取价值,但是星期五下午我的大脑太忙了,无法计算出来。 问题答案: 按说明选择jQuery v1.6
问题内容: 如何使用Jenkins DSL将作业超时设置为10分钟? 从http://job-dsl.herokuapp.com/中,我可以输入 并为超时生成以下块,默认为3分钟。 我需要输入什么作为“ timeoutClosure”来生成DSL 相反? 问题答案: 在工作中DSL参考说,需要关闭与这种情况: 您可以省略前缀,但是我发现最好将其明确表示为时间单位。