Questions tagged «jenkins-pipeline»

有关Jenkins“ Pipeline”插件套件(以前称为“ Workflow”)的问题。一般而言,与詹金斯的管道无关(例如,使用下游作业)。

4
在IntelliJ IDEA中配置Groovy SDK
我正在运行IntelliJ IDEA 2017.2.3。我通过Homebrew(OS X)安装了Groovy 2.4.12。当打开Groovy源文件(或Jenkinsfile)时,得到以下信息: 没有为模块'my-module'配置Groovy SDK。。。。。配置Groovy SDK ... 单击“配置Groovy SDK ...”会将我带到以下对话框: 我尝试点击“创建...”并选择许多与Groovy相关的文件夹和可执行文件,但没有任何效果。 如何使IntelliJ IDEA接受我的Groovy SDK?



12
詹金斯管道NotSerializableException:groovy.json.internal.LazyMap
已解决:感谢S.Richmond的以下答复。我需要取消设置所有groovy.json.internal.LazyMap类型的存储映射,这意味着使变量无效envServers并object在使用后。 附加:搜索此错误的人员可能有兴趣使用Jenkins管道步骤readJSON-在此处查找更多信息。 我正在尝试使用Jenkins Pipeline从用户那里获取输入,该输入作为json字符串传递给作业。管道然后使用隔离程序对此进行解析,然后我选择了重要信息。然后,它将使用该信息以不同的作业参数并行运行1个作业。 直到我"## Error when below here is added"在脚本下方添加代码,该脚本才能正常运行。甚至低于该点的代码也将独立运行。但是当结合在一起时,我得到以下错误。 我应该注意,已触发的作业已被调用并确实成功运行,但是发生以下错误并使主作业失败。因此,主作业不等待触发作业的返回。我可以尝试/赶上,build job:但是我希望主要作业等待触发的作业完成。 有人可以在这里协助吗?如果您需要更多信息,请告诉我。 干杯 def slurpJSON() { return new groovy.json.JsonSlurper().parseText(BUILD_CHOICES); } node { stage 'Prepare'; echo 'Loading choices as build properties'; def object = slurpJSON(); def serverChoices = []; def serverChoicesStr = ''; for (env in object) { envName …

5
詹金斯的多分支管道“定期构建”
我正在使用Pipeline插件运行Jenkins 2。我已经建立了一个多分支管道项目,其中每个分支(主分支,开发分支等)的根目录都有一个Jenkinsfile。设置起来很简单。但是,即使代码未更改,如何让每个分支定期运行(而不是分支索引),我还是一头雾水。我需要在Jenkinsfile中添加什么以启用定期构建?

3
如何在声明性Jenkins管道的各个阶段之间传递变量?
如何在声明式管道的各个阶段之间传递变量? 在脚本化管道中,我收集的过程是写入一个临时文件,然后将该文件读入一个变量。 如何在声明管道中执行此操作? 例如,我想基于shell动作创建的变量来触发其他作业的构建。 stage("stage 1") { steps { sh "do_something > var.txt" // I want to get var.txt into VAR } } stage("stage 2") { steps { build job: "job2", parameters[string(name: "var", value: "${VAR})] } }

4
Jenkinsfile中的构建失败
在某些情况下,我想使构建失败。我怎么做? 我试过了: throw RuntimeException("Build failed for some specific reason!") 实际上,这确实会使构建失败。但是,日志显示异常: org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use new java.lang.RuntimeException java.lang.String 这会使用户感到困惑。有没有更好的办法?

1
检查詹金斯管道中是否存在文件
如果我的jenkins工作空间中存在目录,并且工作空间中的管道步骤“ fileExists:验证文件存在”,我似乎试图运行一个块。 我正在使用Jenkins v 1.642和Pipeline v 2.1。并试图让像 if ( fileExists 'test1' ) { //Some block } 我在管道中还有哪些其他选择?

3
Jenkins管道如何更改到另一个文件夹
目前,我正在使用Jenkins管道脚本。 要运行一个命令,我需要访问其工作区目录外部的文件夹。 我尝试过sh "cd $workspace/",但是它返回了当前的工作区文件夹。 如何更改为根工作区目录,然后cd到另一个文件夹。请帮忙。

4
使用Jenkins管道将多个git仓库签出到同一作业中
我正在使用Jenkins Multiple SCM插件在Jenkins作业中将三个git存储库检入到三个子目录中。然后,我执行一组命令,以使用从所有三个存储库中提取的信息和代码构建一组工件。 现在已弃用多个SCM,并且文本建议移至管道。我尝试过,但是我不知道如何使它工作。 这是我想从我的Jenkins工作目录的顶层看到的目录结构: $ ls Combination CombinationBuilder CombinationResults 这三个子目录中的每一个都有一个单独的git repo签出。对于Multiple SCM,我使用git,然后添加了“检出到子目录”的行为。这是我使用管道脚本的尝试: node('ATLAS && Linux') { sh('[ -e CalibrationResults ] || mkdir CalibrationResults') sh('cd CalibrationResults') git url: 'https://github.com/AtlasBID/CalibrationResults.git' sh('cd ..') sh('[ -e Combination ] || mkdir Combination') sh('cd Combination') git url: 'https://github.com/AtlasBID/Combination.git' sh('cd ..') sh('[ -e CombinationBuilder ] || …

10
如何访问参数化版本中的参数?
您如何访问parameters“工作流程” Jenkins作业的“此构建已参数化”部分中的设置? 测试用例 创建一个工作流作业。 启用“此构建已参数化”。 添加foo具有默认值的STRING PARAMETER bar text。 将以下代码添加到Workflow Script: node() { print "DEBUG: parameter foo = ${env.foo}" } 运行工作。 结果 DEBUG: parameter foo = null


3
此版本的OSX无法执行必要的dSYM转换
[31merror: could not complete submission of dSYM at /Users/XXUSERXX/Library/Developer/Xcode/DerivedData/ProjectName-flcoueeibbfifebpxptgzctdsqel/Build/Intermediates.noindex/ArchiveIntermediates/ProjectNameAlpha/BuildProductsPath/ProjectNameAlpha-iphoneos/ProjectName.app.dSYM: Error Domain=com.crashlytics.mac.error-domain.process-dsym Code=4 "This version of OSX is not able to perform the necessary dSYM transformations." UserInfo={NSLocalizedFailureReason=This version of OSX is not able to perform the necessary dSYM transformations.} [0m Command PhaseScriptExecution failed with a nonzero exit code ** ARCHIVE FAILED …

1
詹金斯解释一行上的多个对象声明
这不是问题,而是一个警告性的故事:我试图节省一些空间,并在Jenkins Declarative管道中声明我的变量,如下所示: int a, b, c 然后,我将它们初始化为: a = b = c = 0 在我的代码中,我将这些整数用作for循环中的计数器。我的脚本不断失败,引发了一些异常: java.lang.NullPointerException: Cannot invoke method next() on null object 而且我肯定知道我的清单是经过硬编码的,因此是有效的。因此,我开始想知道这些计数器是怎么回事,当我在它们上调用getClass()时,詹金斯高兴地告诉我它们不是整数,而是 org.codehaus.groovy.runtime.NullObject 将代码更改为 int a = 0 int b = 0 int c = 0 一切都像魅力。只是想分享这个。也许它将帮助某人节省一些挫败感。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.