我想通过JobDSL生成基于管道插件的作业,该作业包含在Jenkins签出的git存储库中。
然而,我认为在作业DSL脚本中使用引用字符串的管道脚本不是很好。因此,我想将它们读入一个字符串,并将其传递给script()
函数:
definition {
cps {
sandbox()
script( new File('Pipeline.groovy').text )
}
}
}
我必须把Pipeline.groovy
放在哪里才能工作?我试着把它放在我的DSL脚本旁边,也放在我的DSL源代码的资源/
文件夹中。但是Jenkins总是抛出一个“未找到文件”。
参考作业DSL管道作业:https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob,并在其上进行黑客攻击http://job-dsl.herokuapp.com/以查看生成的配置。
下面的作业DSL创建了一个管道作业,它从Jenkinsfile中提取实际的作业:
pipelineJob('DSL_Pipeline') {
def repo = 'https://github.com/path/to/your/repo.git'
triggers {
scm('H/5 * * * *')
}
description("Pipeline for $repo")
definition {
cpsScm {
scm {
git {
remote { url(repo) }
branches('master', '**/feature*')
scriptPath('misc/Jenkinsfile.v2')
extensions { } // required as otherwise it may try to tag the repo, which you may not want
}
// the single line below also works, but it
// only covers the 'master' branch and may not give you
// enough control.
// git(repo, 'master', { node -> node / 'extensions' << '' } )
}
}
}
}
您/您的Jenkins管理员可能希望将Jenkins工作创建与实际工作定义分开。这对我来说似乎很明智……将脚本集中在一个Jenkins DSL repo中创建Jenkins作业并不是一个坏主意。
你试过< code > readFileFromWorkspace >吗?它应该能够找到你从git中取出的文件。
问题内容: 我正在尝试编写管道脚本以与Jenkins 2.0一起使用来复制我们现有的构建。这个原始版本使用envInject插件读取Java属性文件,但是我看不到如何从管道Groovy脚本中执行此操作。我已经用Google搜索并找到了以下内容,但是它不起作用(FileNotFoundException): 谢谢! 问题答案: 我只是昨天和今天为此而战。我希望此功能更容易找到。 抓住“ Pipeli
我有一个简单的Jenkinsfile,我想在其中从工作区加载一些数据。我正在使用管道插件来利用存储库中的Jenkinsfile。构建被外包给匹配的Jenkins代理。当我尝试使用“readFile”时,我收到以下消息: Java语言io。FileNotFoundException:/path/to/jenkins/workspace/XXXXX/project/data。json(无此类文件或目录
问题内容: 我知道如何读取字节,但是如何在Python中读取位? 我只需要从二进制文件中读取5位(而不是8位[1字节]) 有什么想法或方法吗? 问题答案: Python一次只能读取一个字节。您需要读完整的字节,然后从该字节中提取所需的值,例如 或者,如果您想要5个最低有效位,而不是5个最高有效位: 一些其他有用的位操作信息可以在这里找到:http : //wiki.python.org/moin/
问题内容: 我正在尝试从Jenkins管道中的文件运行Powershell脚本。 我已经阅读了本文,该文章显示了如何运行输入到管道中的Powershell脚本,但是我无法从文件中运行脚本。 我努力了: 和各种组合,但无法弄清楚该如何做。 问题答案: 很快就弄清楚了,该行应该已经阅读
我们在jenkins中配置了两个Kubernetes云 null
问题内容: 如何从Java中classpath读取文本文件? 问题答案: 在类路径上的目录中,从同一类加载器加载的类中,你应该能够使用以下任一种: 如果这些都不起作用,则表明还有其他问题。 因此,例如,使用以下代码: 而这个目录结构: 然后(使用Linux机器上的Unix路径分隔符): 结果: