我有很多作业包含非常相似的配置值。
然后我有了使用EnvInject插件读取生成的属性文件的想法,该文件包含了我的大部分配置。
然而,我不知道在詹金斯作业配置中可以在多大程度上使用环境变量。
例如,在Maven作业中,我可以将根POM指定为${job\u NAME}/POM。xml
。詹金斯会告诉我它找不到文件,但这项工作确实有效。
配置其他部分(如要保留的构建数量)会悲惨地失败(变量被简单地删除)。
那么,有没有人有使用环境变量减少Jenkins中复制/粘贴配置的经验?
如果您的目标是减少剪切和粘贴,那么job dsl插件可能更适合您的需要。
您可以构建一个模板作业(使用语句),然后使用它来构建主作业。
从教程中修改
job {
name 'DSL-Tutorial-1-Test'
using 'seed-job'
scm {
git('git://github.com/jgritman/aws-sdk-test.git')
}
triggers {
scm('*/15 * * * *')
}
steps {
maven('-e clean test')
}
}
此外如果你需要改变所有的工作你可以改变你的模板和重建的主要工作
问题内容: 我想在詹金斯中设置很多变量。我试图把他们的,和该的用户,但是当构建正在发生詹金斯无法找到他们。 唯一可行的方法是将所有env变量放入其中,如下所示: 但是我不认为这是个好方法。 在詹金斯中设置环境变量的正确方法是什么? 问题答案: 在我看来,这很正常。并且应被视为文本凭据,您可以使用 指令添加环境变量。 如果你需要保持环境变量分开,你可以创建一个包含所有的常规文件,然后将该文件加载到使
问题内容: 我希望能够执行以下操作: 并安排詹金斯。 Jenkins中的“ 环境变量” 部分不这样做。而是设置了。 如何让Jenkins评估Shell命令并将输出分配给环境变量? 最终,我希望能够将作业的执行者分配给可以传递到其他脚本或由其他脚本使用的环境变量。 问题答案: 可以通过以下方式通过EnvInject插件完成此操作: 创建一个运行的“执行外壳”构建步骤: 创建一个“ 注入”环境变量 构
问题内容: 我有一个包含differents变量的docker-compose.yml文件 在我的外壳中,我导出RegistryUrl和image_version 这在我的本地环境中有效(我正在使用boot2Docker),但在Jenkins中则无效。我发错消息了。 我尝试通过EnvInject插件传递env变量,但它也不起作用。 问题答案: 您在jenkins shell中的环境变量将不会自动导
我试图从流水线步骤中运行一个job-dsl脚本。一般来说,这应该是可能的,正如这里所描述的,在管道步骤中添加了以下代码片段: null 我如何知道脚本的真实位置,以及如何指定一个jobDsl作为目标,它本身位于不同的repo中?还是我完全走错了方向? 编辑 经过进一步的研究,共享库存储库被签出到“真实”工作区旁边的一个目录中,后缀为@libs,这似乎是事实。所以我认为使用以下方法是个好主意: 与此
问题内容: 我尝试了各种方式,但似乎没有任何效果。这是我的詹金文件。 阶段脚本的输出(“初始化变量”)没有任何作用,它没有设置全局变量ZIP_NODE的值: 然后我们进入阶段(代码-Build),我们没有得到ZIP_NODE的值。请参阅22:34:17的echo声明 感谢@awefsome,我有一些观察,我想补充一下细节:当我使用下面的代码时,我得到了想要的输出,即ZIP_NODE的正确值: 但是
问题内容: 我需要在我们的jenkins服务器(在Windows上运行)上使用特定的conda环境运行jenkins构建。我认为这和运行一样容易: 但这似乎导致构建甚至在脚本启动之前退出。这是jenkins控制台日志: 如果删除激活行,则python脚本可以正常执行。 仅供参考,我正在运行的脚本: 有人知道发生了什么吗?我应该直接调用相关的python可执行文件吗? 问题答案: 使用以防止激活从它