【发布时间】:2018-09-08 08:10:18
【问题描述】:
我目前使用Cloudbees Jenkins Core作为我的 Jenkins 解决方案。
我正在使用Jenkins Pipelines 来编写我们的 Jenkins 作业配置。这些管道存储在 GitHub 存储库中。每个 Jenkins 作业在创建时都连接到从中提取源代码的 GitHub 存储库,而这就是存储 Jenkinsfile 和 Jenkins 读取的位置。
下面是一些关于如何配置 Jenkins 作业的高级照片。
这些作业配置方式的优点是始终从主分支读取Jenkinsfile。这意味着如果 rouge 开发人员试图从自己的分支中从 Jenkinsfile 中删除阶段,这并不重要,因为始终从主分支(始终受到保护)读取 Jenkinsfile。
但是,这样做的一个巨大缺点 - 作为 devops 工程的团队和开发人员如何更改 Jenkinsfile?例如,假设开发人员创建了一个名为 feature-jenkins-search 的分支,并且他们编辑了 Jenkinsfile,在管道中添加了一个新阶段。每当他们将这些更改推送到 GitHub 进行测试时——他们无法测试,因为它总是从主分支读取?意味着 devops 工程必须直接在 master 分支上工作? 当然这不是最好的方法,还有更好的配置可以设置吗?
我们确实希望仍然提供安全性,如果开发人员是流氓并且
【问题讨论】:
-
Devops 是企业中的一个非常精致的部分。如果某些开发人员更改或损坏管道,新软件发布或整个持续交付可能会受到影响。给我一个你的管道步骤的例子,我可以分享我的方法。
-
流水线步骤是什么意思?我们在 package.json 中有 npm 测试、Snyk 安全测试、checkmarx 安全测试、版本检查等阶段。他们只是几个例子。我们只需要一种适当的方式让团队开发和构建管道,它仍然确保如果它们合并到另一个分支,它会从 target 分支读取 Jenkinsfile。 E.G master,如果他们试图推入 master :)
标签: jenkins groovy version-control jenkins-pipeline cloudbees