从 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 以使其始终可用。
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 以使其始终可用。