从jenkins管道插件中的自定义位置选择JenkinsFile

时间:2016-10-27 09:23:49

标签: jenkins jenkins-pipeline

jenkins管道插件可以从自定义位置选择jenkinsfile并启动构建吗?

我不想将jenkinsfile保留在源代码中。如果源代码有任何变化。应该选择自定义位置的jenkinsfile并开始构建。

例:/家庭/测试/ jenkinsfile

2 个答案:

答案 0 :(得分:8)

只要用户有权读取位置,您当然可以尝试放置自定义位置(我不明白为什么不能)。

如果它是多分支管道,而不是no。因为索引是基于Jenkinsfile的存在(只有包含Jenkinsfile的分支被编入索引)

在您的存储库中拥有构建逻辑背后的想法是,这是与源一起控制源。当您更改源中的某些内容并且这会影响您的构建时,构建该特定提交将具有所有逻辑。如果将其移到存储库外部,则构建逻辑和存储库很可能不同步。

修改 您可以通过添加将加载其他文件的Jenkinsfile来解决此问题

Jenkinsfile:

load "/home/test/Jenkinsfile"

但据我所知,导演与工作区有关。因此,如果您有相对于作业工作区运行的任何dir("path/to/other/dir"){..},这会使您的静态Jenkinsfile非常难以阅读。

答案 1 :(得分:1)

我认为有办法。

  • 使用常规的Jenkinsfile运行项目后,...
  • 制作新的Jenkinsfile.other
  • 转到您的存储库的Jenkins仪表板
  • 查看作业配置
  • 向下滚动到Build Configuration部分
  • 将您的Jenkinsfile的名称更改为Jenkinsfile.other
  • 运行构建。

我没有尝试创建一个克隆的詹金斯乔布斯,并尝试编辑它以使其始终可用。