我正在尝试升级我当前的回归基础设施以使用 pipeline plugin我意识到有两种方法:脚本化管道和声明式管道。阅读多篇文章后,我意识到声明式管道更适合 future 且更强大,因此我倾向于使用它。但我不想在我的设置中出现以下限制:
jenkinsfile
需要位于存储库中。我不想将我的jenkinsfile
保留在代码存储库中。因为
jenkinsfile
需要位于 SCM 中。这是否意味着在将文件 checkin 存储库之前我无法测试文件中的任何修改。
上述任何详细信息都会非常有帮助。
最佳答案
声明性管道被编译为脚本化管道,因此这些管道肯定不会消失。但声明性的更容易处理,所以一切都对你来说很好。
您不必将 Jenkinsfile
检入 VCS。您还可以设置管道类型的作业并在那里定义它。但这有常见的缺点,例如没有历史记录等。
当使用多分支管道时,即每个包含生成自己作业的 Jenkinsfile 的分支,您只需将更改的管道推送到新分支并执行它即可。完成后,您可以合并它。
这种方法确实会增加一点反馈周期,但它只是应用了与编写软件时相同的原则。对于实验,只需设置一个管道类型的作业并进行尝试。然后,将其提交到分支,测试它,审查它,合并它。
关于存储库中没有 Jenkins 文件的 Jenkins 声明式管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48900366/