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

时间:2018-02-21 07:33:27

标签: jenkins jenkins-pipeline jenkins-declarative-pipeline

我正在尝试升级当前的回归基础架构以使用pipeline plugin,我意识到有两种方法:scripted pipelinedeclarative pipeline。通过多篇文章,我意识到declarative pipeline更具有未来性和更强大的功能,因此我倾向于使用它。但似乎有以下限制,我不希望在我的设置中:

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

  2. 由于jenkinsfile需要在SCM中。这是否意味着我无法测试文件中的任何修改,直到我检查到存储库。

  3. 上述任何细节都非常有用。

2 个答案:

答案 0 :(得分:5)

声明性管道被编译为脚本化的管道,所以那些绝对不会消失。但是声明性的更容易处理,所以对你来说都很好。

您无需将Jenkinsfile检入VCS。您还可以设置 Pipeline 类型的作业并在那里进行定义。但这有通常的缺点,如没有历史等。

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

这种方法肯定会稍微增加反馈周期,但它只是采用与编写软件时相同的原则。对于实验,只需设置管道类型的作业并进行游戏。然后,将其提交给分支,测试,审核,合并。

答案 1 :(得分:1)

您可以使用Pipeline Multibranch Defaults Plugin。它允许您在Web UI本身(使用Config File Provider插件)中定义Jenkinsfile,然后从多分支管道中引用该文件。