使用一个Jenkinsfile或多个Jenkinfiles

时间:2019-07-17 14:20:56

标签: jenkins jenkins-pipeline

我们当前正在使用Windows \ Jenkins 2.107.1(无管道),并且我正在研究管道。我们有一个每晚的工作,该工作从存储库中获取,然后提交并等待其他工作。我看到在同一主节点(我们只有一个主节点)上同时运行9个作业。我不清楚我们应该拥有一个Jenkinsfile还是多个Jenkinsfiles。它不会是多分支管道,因为我们不会创建测试分支,然后再合并回主分支。在存储库中,我们有product1.0分支,product2.0分支等,并且仅构建一个分支(最新的一个)。虽然我确实喜欢Blue Ocean编辑器,但它仅用于MultiBranch管道。

我是将所有作业合并到一个Jenkinsfile中,还是为每个现有作业(Jenkinsfilestart,JenkinsfileFetchCV,JenkinsFileFetchGit,Jenkinsfilenextjob等,并相互调用一个)创建多个jenkins文件?我是否将所有旧作业创建为Jenkinsfiles,或由一个主Jenkinsfile执行的脚本?我该使用声明式还是脚本式?

已经在测试VM上设置了Jenkins管道,但不清楚该走什么路。

寻找路线和/或示例。是否有有关如何转换现有Jenkins非管道系统的文档?

我在完成最初的帖子后发现了这个问题……https://wiki.jenkins.io/display/JENKINS/Convert+To+Pipeline+Plugin。 它确实提供了一些帮助,因为它为您提供了一些已转换的步骤,但是无法转换所有步骤,并且将在管道脚本中提供注释“ //无法转换涉及...的构建步骤,请根据需要手动验证并转换” ”。有一个选项“递归转换下游作业(如果有)”,如果选择该选项,它似乎会将所有下游作业添加到同一管道脚本中,并且确实使作业参数混乱。还有一个选项“ Commit JenkinsFile”。我将进一步处理这个问题,但这不是转换成管道的全部和全部,我仍然不确定是否应该拥有一个或多个脚本。

1 个答案:

答案 0 :(得分:0)

如果您有一个作业,那么将在多个分支上执行(可能有可选阶段,具体取决于分支名称或标记或其他),那么您仍然可以利用多分支管道。

总的来说,我会说范式转换主要集中在将旧工作转换成阶段以便自动化您的构建过程。如果您将使用半自动/全自动CI / CD流程,则可能看起来像

  • 具有以下阶段(第一个jenkinsfile)的多分支管道项目(所有分支)
    • 建立(所有分支)
    • 单元测试(所有分支机构)发布报告
    • 发布工件(主分支和发布分支)
    • 构建和发布docker(主分支和发布分支)
    • 部署进行测试(主分支和发布分支)
    • 运行集成测试(主分支和发布分支)
    • 如果部署结果符合预期,则部署到主节点和发行分支的部署可能会以手动步骤结束
    • 部署到生产(发布分支)
  • 每晚测试的管道作业(其他jenkinsfile),这是什么结果?它会中断CI / CD的流量吗?