jenkins Pipeline 可以强制将所有内容存储在 VCS 中吗?

Can jenkins Pipeline force storing everything in VCS?

我用过 Jenkins DSL。现在我开始了一个新项目并考虑使用 Pipeline 代替 Jenkins DSL。

当使用 Jenkins DSL 时,有一个种子作业,每个人都被迫将每个作业存储在版本控制中,以免被覆盖。 我找不到用管道强制执行相同操作的方法。

我喜欢这种方法,因为在我看来,它确实有助于将所有内容存储在 VCS 中。

使用 Pipeline 时,您需要像 Job DSL 种子作业一样手动创建作业配置。

您可以使用 Job DSL 的混合方法来创建管道作业,并将管道定义保存在项目代码旁边的 Jenkinsfile 中。

pipelineJob('example') {
  definition {
    cpsScm {
      scm {
        git('https://github.com/jenkinsci/job-dsl-plugin.git')
      }
      scriptPath('Jenkinsfile')
    }
  }
}

详情见https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob

同时检查高级管道作业类型,如多分支和组织文件夹,它们提供开箱即用的动态作业设置。参见 https://jenkins.io/doc/book/pipeline/multibranch/。作业 DSL 也支持作业类型。