存储库中没有 Jenkins 文件的 Jenkins 声明式管道
Jenkins Declarative Pipeline without Jenkins file in the repository
我正在尝试升级我当前的回归基础架构以使用 pipeline plugin,我意识到有两种方法:scripted pipeline
和 declarative pipeline
。通过多篇文章,我意识到 declarative pipeline
更适合未来,也更强大,因此我倾向于使用它。但是我不想在我的设置中有以下限制:
jenkinsfile
需要在存储库中。我不想将我的 jenkinsfile
保留在代码存储库中。
因为 jenkinsfile
需要在 SCM 中。这是否意味着我无法测试文件中的任何修改,直到我将其签入存储库。
上面的任何详细信息都会非常有帮助。
声明式管道被编译为脚本式管道,因此它们肯定不会消失。但是声明式的更容易处理,所以对你来说没问题。
您不必将 Jenkinsfile
签入 VCS。您还可以设置 Pipeline 类型的作业并在那里定义它。但这有一些常见的缺点,比如没有历史等等。
当使用 multi-branch 管道时,即每个分支包含一个 Jenkinsfile
生成自己的作业,您只需将更改的管道推送到一个新分支并执行它。完成后,将其合并。
这种方法肯定会稍微增加反馈周期,但它只是应用了与编写软件时相同的原则。对于实验,只需设置一个 Pipeline 类型的作业并进行试验。然后,提交到一个分支,测试它,审查它,合并它。
您可以为此使用 Pipeline Multibranch Defaults Plugin。它允许您在网络中定义 Jenkinsfile UI(使用 Config File Provider 插件)本身,然后从多分支管道引用该文件。
我正在尝试升级我当前的回归基础架构以使用 pipeline plugin,我意识到有两种方法:scripted pipeline
和 declarative pipeline
。通过多篇文章,我意识到 declarative pipeline
更适合未来,也更强大,因此我倾向于使用它。但是我不想在我的设置中有以下限制:
jenkinsfile
需要在存储库中。我不想将我的jenkinsfile
保留在代码存储库中。因为
jenkinsfile
需要在 SCM 中。这是否意味着我无法测试文件中的任何修改,直到我将其签入存储库。
上面的任何详细信息都会非常有帮助。
声明式管道被编译为脚本式管道,因此它们肯定不会消失。但是声明式的更容易处理,所以对你来说没问题。
您不必将 Jenkinsfile
签入 VCS。您还可以设置 Pipeline 类型的作业并在那里定义它。但这有一些常见的缺点,比如没有历史等等。
当使用 multi-branch 管道时,即每个分支包含一个 Jenkinsfile
生成自己的作业,您只需将更改的管道推送到一个新分支并执行它。完成后,将其合并。
这种方法肯定会稍微增加反馈周期,但它只是应用了与编写软件时相同的原则。对于实验,只需设置一个 Pipeline 类型的作业并进行试验。然后,提交到一个分支,测试它,审查它,合并它。
您可以为此使用 Pipeline Multibranch Defaults Plugin。它允许您在网络中定义 Jenkinsfile UI(使用 Config File Provider 插件)本身,然后从多分支管道引用该文件。