小编Bas*_*ien的帖子

詹金斯管道:是否有可能避免多次结账?

我已经使用管道功能将一些旧的Jenkins作业移动到新的作业,以便能够在git存储库中集成Jenkins配置.它工作正常,但我问自己是否有办法减少建设时发生的结账次数.

建立

  • 我有一个与我的git存储库相关的Jenkins multibranch作业
  • 我的git存储库中有一个Jenkinsfile

    #!groovy
    node {
    
      stage 'Checkout'
      checkout scm
    
      // build project
      stage 'Build'
      ...
    }
    
    Run Code Online (Sandbox Code Playgroud)

问题

当我推送到我的远程分支BRANCH_1时,会触发multibranch jenkins作业,我的理解是发生以下步骤:

  • multibranch作业git fetch为分支索引创建一个并触发与我的远程分支对应的作业:BRANCH_1_job
  • BRANCH_1_job使a git checkout检索触发分支的Jenkins文件
  • Jenkins文件被执行并checkout scm自行创建.如果我不这样做,我就无法构建我的项目,因为没有可用的源.

因此,为了建立我的分支,我最终得到了一个git fetch和两个git checkout.

问题

  • 我能正确理解这个过程吗?还是我错过了什么?
  • 有没有办法减少数量git checkout?当我查看官方示例时,他们都会将结帐scm作为第一步.我个人认为我没有必要这样做,因为jenkins工作已经不得不进行检查以检索Jenkins文件(所以我的来源必须以某种方式在这里).
  • 一旦git repo包含大量refs,你不觉得这些多次结账会导致糟糕的性能吗?

谢谢大家

git jenkins jenkins-pipeline

15
推荐指数
1
解决办法
6852
查看次数

标签 统计

git ×1

jenkins ×1

jenkins-pipeline ×1