标签: jenkins-job-dsl

如何使用Jenkins DSL设置作业超时

如何使用Jenkins DSL将作业超时设置为10分钟?

http://job-dsl.herokuapp.com/,我可以进入

job {
  name 'ci'
  description 'Build and test the app.'
  wrappers {    
     timeout()
   }
}
Run Code Online (Sandbox Code Playgroud)

它会为超时生成以下块,默认值为3分钟.

<buildWrappers>
    <hudson.plugins.build__timeout.BuildTimeoutWrapper>
        <strategy class='hudson.plugins.build_timeout.impl.AbsoluteTimeOutStrategy'>
            <timeoutMinutes>3</timeoutMinutes>
        </strategy>
        <operationList></operationList>
    </hudson.plugins.build__timeout.BuildTimeoutWrapper>
</buildWrappers>
Run Code Online (Sandbox Code Playgroud)

我需要输入什么作为'timeoutClosure'才能生成DSL

<timeoutMinutes>10</timeoutMinutes>
Run Code Online (Sandbox Code Playgroud)

相反?

jenkins jenkins-job-dsl

6
推荐指数
1
解决办法
2305
查看次数

在init.groovy.d脚本中使用管道初始化Jenkins 2.0

为了自动化,我想用管道作业初始化Jenkins 2.0实例.我想创建一个Groovy脚本,/usr/share/jenkins/ref/init.groovy.d/在启动时复制到该文件夹.该脚本应创建一个Jenkins 2.0 Pipeline作业,以便从SCM处理Jenkins文件.

我找不到2.0管道类的相关Javadoc或如何执行此操作的示例.

以前,使用工作DSL创建一个管道,我用了一个Groovy脚本来创建一个FreeStyleProjectExecuteDslScripts建设者.这项工作将成为Job DSL种子工作.

一种选择是使用init脚本创建Job DSL种子作业以创建Jenkins 2.0管道.它似乎不必要地复杂.

我正在试验这个回购:https://github.com/martinmosegaard/vigilant-sniffle

groovy jenkins jenkins-job-dsl jenkins-workflow jenkins-pipeline

6
推荐指数
2
解决办法
6145
查看次数

从Jenkins Multijob迁移到Pipeline插件

目前我们正在使用Jenkins CI 1.643(我相信)使用Multijob插件和Job DSL.
使用Job DSL生成作业集合,以及包含特定顺序中的所有其他作业的多工作(构建,分析,单元测试,集成测试等).

我有兴趣升级到Jenkins 2并使用Pipeline插件(以前称为Workflow插件).Pipeline插件提供了一个很好的图形表示,还提供了一些我们目前没有的更高级功能(例如需要人工交互的"暂停"操作).Blue Ocean项目似乎也非常时尚,但需要Pipeline插件.

关于迁移,我有几个问题:

  • 我应该继续使用Job DSL吗?我们在Groovy中创建了一个非常好的模板机制,所以我们只需要输入一些关于产品的细节(比如正在使用的编译器和某些质量阈值).我想我想保留这个.
  • 是否有从Multijob插件"迁移"到Pipeline插件的指南?
  • 我应该记住哪些事情?(插件之间的主要区别.)

jenkins jenkins-job-dsl jenkins-pipeline jenkins-blueocean

6
推荐指数
1
解决办法
3269
查看次数

Jenkins:将多个 DSL 文件合二为一

我想统一 Jenkins 作业生成过程,并希望将一个文件传递给Process Job DSLs步骤。

所以我可以改变当前版本的 DSL 中包含的文件。假设我有这些文件:

..
Release.groovy
FirstPipeline.groovy
SecondPipeline.groovy
Run Code Online (Sandbox Code Playgroud)

我希望 Release.groovy 包含两个管道或可能只是单个管道。

管道文件内部没有 Class 结构,所以我不能像导入库一样导入它们。它只是这样的:

import mylibs.jobs.UsefulJob1
import mylibs.jobs.UsefulJob2 
import mylibs.jobs.FirstPipeline

def firstPipeline = new FirstPipeline()

multiJob(firstPipeline.name) {
  // multijob steps
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用评估,但结果证明它仅适用于简单的脚本。如果您将它与更复杂的导入库层次结构和元编程一起使用,它会失败并出现几乎无法解释的错误。

groovy jenkins jenkins-job-dsl

6
推荐指数
1
解决办法
1940
查看次数

Job DSL 中的条件循环

我将构建类型即 Maven Job 或 Freestyle 作业作为输入参数(使用构建参数化插件)并根据输入条件创建相应的作业

我的输入参数: "maven" (to create Maven job) ,else 阻止自由式作业。

if(params[build_type]=="maven"){
    mavenJob('example') {
        using(template_job)
          scm { 
            svn {
              location(svn_url)
            }
          } 
       } 
}
freeStyleJob('example') {
        using(template_job)
          scm { 
            svn {
              location(svn_url)
            }
          } 
       } 
Run Code Online (Sandbox Code Playgroud)

我正面临以下错误消息,我对 groovy 很陌生,所以请原谅。期待任何建议。谢谢。

处理提供的 DSL 脚本错误:(脚本,第 1 行)没有这样的属性:类的参数:脚本

groovy jenkins jenkins-job-dsl

6
推荐指数
1
解决办法
3228
查看次数

Jenkins插件中的DSL扩展如何工作

我想为我的Jenkins插件创建DSL扩展(使用maven构建),就像Jenkins的Docker插件示例一样.我看到groory文件Docker.groovy位于:src/main/resources/org/jenkinsci/plugins/docker/workflow/Docker.groovy

这个groovy文件是否必须在org.jenkinsci.plugin.docker.workflow中,或者我可以将它放在资源中吗?有什么不同?

另外,如果我以这种方式在groovy文件中定义我的DSL扩展,可以在管道文件中隐式调用DSL扩展吗?

jenkins jenkins-plugins jenkins-job-dsl

6
推荐指数
1
解决办法
256
查看次数

如何从另一个 Jenkins 共享库调用函数

我有两个独立的库(库 A 和库 B),我在 jenkins 配置上定义了它们,因此它们都可以从管道中调用。

从库 AI 想调用库 B 中定义的一些函数/方法。

我的逻辑告诉我,在我可以访问库 B 的任何方法之前,我需要导入并可能在库 A 中创建库 B 的实例。但我没有成功。我不是 Java 专家,但是非常感谢任何指导。

shared-libraries jenkins jenkins-job-dsl jenkins-pipeline

6
推荐指数
2
解决办法
5556
查看次数

使用 job dsl 设置 Jenkins 参数化调度程序插件

我正在尝试使用 jenkins job dsl 添加参数化的 cron 作业。但是,每次我尝试添加作业时都会看到以下错误:

No signature of method: javaposse.jobdsl.dsl.helpers.triggers.TriggerContext.parameterizedTimerTrigger() is applicable
for argument types: (com.manh.cp.jenkins.script$_createJob_closure3$_closure6$_closure9) values:
[com.manh.cp.jenkins.script$_createJob_closure3$_closure6$_closure9@4f7fa1a2]
Run Code Online (Sandbox Code Playgroud)

我都尝试过:

triggers {
   parameterizedCron('''H 20 * * * %var=a''')
}
Run Code Online (Sandbox Code Playgroud)

triggers {
    parameterizedTimerTrigger {
        parameterizedSpecification('H 20 * * * %var=a')
    }
}
Run Code Online (Sandbox Code Playgroud)

这对其他人还有效吗

参数化调度程序 v0.8 作业 dsl v1.76

cron dsl crontrigger jenkins jenkins-job-dsl

6
推荐指数
1
解决办法
2059
查看次数

如何在 DSL 中将参数传递给 pipelineJob

我有非常相似的管道作业,唯一的区别是参数。目标是通过在 DSL 脚本中传递参数来创建这些作业,而无需任何代码重复。

我关注了这篇文章。因此,如果您在执行本文中提到的步骤后运行下面的 DSL 脚本,我的脚本就可以运行。

TL;DR 在那篇文章中添加了一个共享库,并且让 Jenkinsfile 使用该共享库。

我有一个非常相似的方法。不同之处在于我想通过 DSL 创建构建作业,并通过 DSL 上的设置更改 Jenkinsfile 的默认参数。

问题是如何传递/覆盖 Jenkinsfile 中的参数。

// BTW I'll run this code below in a loop. Open for any suggesstion 
pipelineJob('AwesomeBild') {

    description("A pipeline created by dsl")

    definition {
        cpsScm {
            scm {
                git {
                    remote { url('https://github.com/jalogut/jenkinsfile-shared-library-sample.git') }
                    branches('master')
                    // how can I pass params to the file
                    scriptPath('Jenkinsfile')
                    extensions { }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑

参数效果良好。这是 DSL 文件的最新版本。

pipelineJob('AwesomeBild') { …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-job-dsl jenkins-pipeline

5
推荐指数
1
解决办法
6938
查看次数

Jenkinsfile 是纯 Groovy 中的吗?Jenkinsfile 的“steps”中使用什么 Groovy 语言结构?

Jenkinsfile 中的以下代码片段使用了什么 Groovy 语言构造、语法或控制结构?

stage('Stage 1') {
    steps {
        // One or more steps
    }
}
Run Code Online (Sandbox Code Playgroud)

即,就纯 Groovy 语言而言,Jenkinsfile 中的块是什么?

什么是“步骤”?或者stage?是调用函数吗?或定义?或者带有匿名(lambda)参数的函数调用?

这个问题本质上是另一个问题:

问题2:

Jenkinsfile 是 groovy 语言的代码片段吗?

换句话说, 1. Jenkinsfile 是否遵循纯 Groovy 的所有语法和控制结构?(也许通过隐式库 import-ed 或 #include d 在开始时默默地),

与 DSL 相反: 2. Jenkinsfile 几乎是一个 Groovy 源文件,增加了新的 Jenkins 特定结构,而这些结构最初并非在 Groovy 中,例如使用预处理的 Jenkins。

以上两者哪一个成立?

有关的:

groovy jenkins-job-dsl jenkins-pipeline

5
推荐指数
1
解决办法
6301
查看次数