存储库中没有 Jenkins 文件的 Jenkins 声明式管道

标签 jenkins jenkins-pipeline jenkins-declarative-pipeline

我正在尝试升级我当前的回归基础设施以使用 pipeline plugin我意识到有两种方法:脚本化管道和声明式管道。阅读多篇文章后,我意识到声明式管道更适合 future 且更强大,因此我倾向于使用它。但我不想在我的设置中出现以下限制:

  1. jenkinsfile 需要位于存储库中。我不想将我的 jenkinsfile 保留在代码存储库中。

  2. 因为 jenkinsfile 需要位于 SCM 中。这是否意味着在将文件 checkin 存储库之前我无法测试文件中的任何修改。

上述任何详细信息都会非常有帮助。

最佳答案

声明性管道被编译为脚本化管道,因此这些管道肯定不会消失。但声明性的更容易处理,所以一切都对你来说很好。

您不必将 Jenkinsfile 检入 VCS。您还可以设置管道类型的作业并在那里定义它。但这有常见的缺点,例如没有历史记录等。

当使用多分支管道时,即每个包含生成自己作业的 Jenkinsfile 的分支,您只需将更改的管道推送到新分支并执行它即可。完成后,您可以合并它。

这种方法确实会增加一点反馈周期,但它只是应用了与编写软件时相同的原则。对于实验,只需设置一个管道类型的作业并进行尝试。然后,将其提交到分支,测试它,审查它,合并它。

关于存储库中没有 Jenkins 文件的 Jenkins 声明式管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48900366/

相关文章:

jenkins - 无法在 Jenkins 中启动新的奴隶

git - 使用 Jenkins 和 Git 进行身份验证

json - 人工 REST API : How to generate Build Info json

java - Jenkins 上的 Sonarscanner : Could not find 'java' executable in JAVA_HOME or PATH

Jenkins 管道条件分支构建

jenkins - 如何在从站上执行的管道阶段中获取 Jenkins 主 IP/主机名?

database - 为测试生成唯一的模式名称

docker - docker'不被识别为内部或外部命令

jenkins - 具有声明性 Jenkins 管道的主动选择参数

jenkins - 如何为 Jenkins 管道声明定义工作区体积