标签: jenkins-job-dsl

使用Jenkins Groovy脚本创建Unix Slave

我想知道如何使用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)

groovy jenkins jenkins-job-dsl

3
推荐指数
1
解决办法
5355
查看次数

如何在Jenkins JobDSL中设置构建描述?

Build Flow Plugin脚本可以调用build.setDescription()来设置构建的描述.可以在JobDSL脚本中完成类似的操作吗?或者脚本是否必须通过注入环境变量?

jenkins-job-dsl

3
推荐指数
1
解决办法
2084
查看次数

JobDSL中的多行powershell命令

我正在修补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('写输出测试;写输出测试')也不起作用

powershell jenkins-job-dsl

3
推荐指数
1
解决办法
3315
查看次数

用于复制工件权限的 Jenkins DSL API

我正在尝试向我的 jenkins 作业 dsl 添加一个调用,该调用将配置该作业以授予另一个构建复制工件的权限。但是,我无法在 Jenkins Job DSL API 中找到它的命令:https : //jenkinsci.github.io/job-dsl-plugin/

这是我尝试使用 DSL 设置的选项:在此处输入图片说明

这个命令存在吗?如果没有的话,是否有设置我的 groovy 来执行此操作?

groovy jenkins jenkins-job-dsl

3
推荐指数
1
解决办法
1965
查看次数

作业DSL将作业限制为选定节点

我正在努力使用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插件设置属性

groovy jenkins jenkins-job-dsl

3
推荐指数
1
解决办法
2176
查看次数

使用job-dsl/pipeline语法的多个cron表达式

在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)

/sf/answers/3094654461/

如何使用job-dsl/pipeline语法执行此操作?

cron jenkins jenkins-job-dsl jenkins-pipeline

3
推荐指数
2
解决办法
1792
查看次数

带有 Bitbucket 分支插件的多分支管道的 DSL 种子作业抑制分支的自动构建

有一个 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)

dsl jenkins jenkins-job-dsl

3
推荐指数
1
解决办法
3003
查看次数

Jenkins job dsl for bitbucket branch 源插件文档和完整示例?

我目前有这个:

multibranchPipelineJob("myjob") {
  branchSources {
    branchSource {
      source {
        bitbucket {
          credentialsId('bitbucket-login-user-pass')
          repoOwner('myteam')
          repository('myrepo')
          autoRegisterHook(true)
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但我还需要添加以下设置: 在此处输入图片说明

如何在配置中添加这些设置?它们是“特质”吗?我该去哪里查看我有哪些特质?

jenkins jenkins-plugins jenkins-job-dsl

3
推荐指数
2
解决办法
2247
查看次数

Jenkins Job DSL 触发器已弃用

我正在使用 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

3
推荐指数
1
解决办法
2910
查看次数

pipelineTriggers 的正确语法

我有一份基于 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)

jenkins-job-dsl jenkins-pipeline

3
推荐指数
1
解决办法
4613
查看次数