我们正在运行Jenkins,并在其某些分支机构中使用Jenkinsfile连接到GitHub组织的存储库的多分支管道插件。 Jenkins可以访问多个其他代理商和在成功构建代码之后部署代码的节点。
问题:我想阻止其他开发人员在他们的分支和拉取请求中使用修改过的Jenkinsfile运行构建。
when
语句:安全性差。任何人都可以修改它,删除when
子句并中断生产。如何确保使用过的Jenkins文件是真实的而不是修改过的?我有什么解决方案吗?我希望这足够安全,以防止任何有权推送访问的人故意破坏东西,例如: G。 git pre-push hooks不是解决方案。
答案 0 :(得分:2)
您可以在multibranch项目的配置中使用Custom Script
部分下的Build Configuration
模式,这样就不会使用不同分支中的jenkins文件,而是通过选择在作业配置中定义的内容pipeline script
部分中的Definition
并阻止开发人员修改jenkins作业配置,或者您可以通过选择Pipeline script from SCM
将任何文件指定为基本上任何存储库中的jenkins文件。
例如,我们的存储库中没有jenkinsfile
,我们所有项目只有一个jenkinsfile
,只有我更新并存放在一个单独的存储库中。