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

Pick JenkinsFile from custom location in pipeline plugin of jenkins

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

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

示例:/home/test/jenkinsfile

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

如果是多分支管道,则比 no。因为索引基于 Jenkinsfile 的存在(仅索引包含 Jenkinsfile 的分支)

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

编辑 您可以通过添加 Jenkinsfile 来解决此问题,它将加载另一个文件

詹金斯文件:

load "/home/test/Jenkinsfile"

但是据我所知,目录是相对于工作区的。因此,如果你有任何 dir("path/to/other/dir"){..},那么相对于作业的工作空间,这将 运行,这会使你的静态 Jenkinsfile 非常难以阅读。

我觉得有办法

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

我还没有尝试创建一个克隆 Jenkins Job,并编辑那个 Jenkins Job 以使其始终可用。