我想知道如何使用Jenkins Groovy脚本创建一个unix slave并启动slave.我有以下代码,它工作得很好.但是,它不会在从属设备中创建ssh选项,也不会启动从属设备.我看到了JNLPLauncher(),我认为我需要将它改成某种ssh启动器.即使它指向我似乎无法找到的文档,我将不胜感激任何帮助.此外,此代码用于在构建时启动从属,并在构建结束后删除从属.我需要根据用户选择的参数进行动态从属分配.因此,对于如何实现这一点的任何其他想法表示赞赏.
import jenkins.model.*
import hudson.model.*
import hudson.slaves.*
Jenkins.instance.addNode(
new DumbSlave(
"test-script",
"test slave description",
"/export/home/pe-deploy/",
"1",
Node.Mode.NORMAL,
"test-slave-label",
new JNLPLauncher(),
new RetentionStrategy.Always(),
new LinkedList()))
Run Code Online (Sandbox Code Playgroud) Build Flow Plugin脚本可以调用build.setDescription()来设置构建的描述.可以在JobDSL脚本中完成类似的操作吗?或者脚本是否必须通过注入环境变量?
我正在修补JobDSL,似乎无法一次性运行几个powershell命令.例:
job('whatever'){
steps{
powershell("""$var = $env:mybuildvar
cmdlet2 $var""")
}
}
Run Code Online (Sandbox Code Playgroud)
我该如何实现这一目标?谢谢!
似乎""""""适用于批处理,但不适用于powershell.此外,如果我尝试使用$ var与转义或没有JobDSL失败
错误:(sandbox_CI_Dev,第15行)没有方法签名:javaposse.jobdsl.dsl.helpers.step.StepContext.powershell()适用于参数类型:(java.lang.String)值:[$ var = $ ENV: mybuildvar]
该错误可在jobdsl playground(http://job-dsl.herokuapp.com/)上重现,使用以下代码(或类似上面的代码):
job('whatever') {
steps{
powershell("write-output $")
}
}
Run Code Online (Sandbox Code Playgroud)
powershell('写输出测试;写输出测试')也不起作用
我正在尝试向我的 jenkins 作业 dsl 添加一个调用,该调用将配置该作业以授予另一个构建复制工件的权限。但是,我无法在 Jenkins Job DSL API 中找到它的命令:https : //jenkinsci.github.io/job-dsl-plugin/
这个命令存在吗?如果没有的话,是否有设置我的 groovy 来执行此操作?
我正在努力使用Job DSL插件将Jenkins作业限制到特定节点.
我尝试过类似的东西:
job("campaign") {
parameters {
stringParam("ARTIFACT_NUMBER", "","")
nodeParam('TEST_HOST') {
defaultNodes(["Slave"])
}
}
steps {
shell('''#!/bin/bash
ARTIFACT_DIR=daily_${ARTIFACT_NUMBER}
echo ${ARTIFACT_DIR}
''')
}
}
Run Code Online (Sandbox Code Playgroud)
但没有成功.基本上,我想Restrict where this project can run通过Job DSL插件设置属性
在Jenkins作业配置的" 构建触发器"部分中,可以在Schedule textarea 中的每一行上添加多个cron表达式,例如:
13 20 * * 0,1,2,3,4,5,6
13 8 * * 0,1,2,3,4,5,6
Run Code Online (Sandbox Code Playgroud)
如何使用job-dsl/pipeline语法执行此操作?
有一个 DSL 工作来在 jenkins 中创建多分支管道作业,运行 Jenkins2.107.1和插件: 'Branch API Plugin' 2.0.18, 'Bitbucket Branch Source Plugin' 2.2.10。
我找不到合适的配置功能来启用“抑制自动 SCM 触发”的属性,请帮忙。
这是我的工作,但它会在扫描分支后立即触发构建:
multibranchPipelineJob("job") {
configure {
it / sources / data / 'jenkins.branch.BranchSource' / source(class: 'com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSource') {
credentialsId('..')
id("..")
checkoutCredentialsId("..")
repoOwner("owner")
repository("my-repo")
includes()
excludes("PR-*")
}
}
}
Run Code Online (Sandbox Code Playgroud) 我目前有这个:
multibranchPipelineJob("myjob") {
branchSources {
branchSource {
source {
bitbucket {
credentialsId('bitbucket-login-user-pass')
repoOwner('myteam')
repository('myrepo')
autoRegisterHook(true)
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何在配置中添加这些设置?它们是“特质”吗?我该去哪里查看我有哪些特质?
我正在使用 Job DSL Jenkins 插件,但我遇到了有关触发器的问题。它已被弃用,当我更新代码时,仍会显示弃用警告。
这是之前的代码:
protected def job
void nightly(String schedule='H 0 * * *') {
job.triggers {
cron(schedule)
}
}
Run Code Online (Sandbox Code Playgroud)
然后更新根据:https : //github.com/jenkinsci/job-dsl-plugin/wiki/Migration
void nightly(String schedule='H 0 * * *') {
properties {
pipelineTriggers {
job.triggers {
cron(schedule)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
还有一个警告:警告: (JobBuilder.groovy, line 100) triggers is deprecated
我究竟做错了什么?是属性关键字错误还是应该是job.properties?
提前致谢
jenkins-plugins jenkins-job-dsl jenkins-groovy jenkins-pipeline
我有一份基于 DSL 的种子工作。这就是看起来的样子
pipelineJob("job name") {
description('Some explanation')
triggers {
cron('@midnight')
upstream('someJob', 'SUCCESS')
}
parameters {
...
Run Code Online (Sandbox Code Playgroud)
当我运行作业时,它最终不稳定并出现错误消息
Warning: (Builds.groovy, line 53) triggers is deprecated
Run Code Online (Sandbox Code Playgroud)
所以现在我重新编写了代码如下
pipelineJob("job name") {
description('Some explanation')
properties {
pipelineTriggers {
triggers {
cron('@midnight')
upstream('someJob', 'SUCCESS')
}
}
parameters {
...
Run Code Online (Sandbox Code Playgroud)
现在我得到了错误
ERROR: (unknown source) No signature of method: javaposse.jobdsl.plugin.structs.DescribableListContext.cron() is applicable for argument types: (java.lang.String) values: [@midnight]
Possible solutions: grep(), print(java.io.PrintWriter), print(java.lang.Object), grep(java.lang.Object), wait(), any()
Run Code Online (Sandbox Code Playgroud)
现在我将其重写为
pipelineJob("job name") {
description('Some explanation')
properties {
pipelineTriggers { …Run Code Online (Sandbox Code Playgroud)