使用代理(非节点)

时间:2017-10-12 19:49:55

标签: jenkins jenkins-pipeline

有没有办法在Jenkins文件中使用“agent”(而不是“node”)指定结帐的位置?

pipeline {
  agent { label 'my_label' }
  stages {
    stage('Checkout') {
      steps {
        // Dang. my_repo has already been checked out
        dir('my_repo') {
          checkout scm
        }
      }
    }
  }
}

看来你使用“节点”就有能力做到这一点,但我似乎找不到与“代理人”有关的方法。

1 个答案:

答案 0 :(得分:1)

如果您设置了skipDefaultCheckout(),那么您可以在需要时结帐SCM:

pipeline {
  agent { label 'my_label' }
  options {
    skipDefaultCheckout()
  }
  stages {
    stage('Checkout') {
      steps {
        // SWEET! my_repo has not been checked out
        dir('my_repo') {
          checkout scm
        }
      }
    }
  }
}

或者,某些SCM提供高级结账选项,可让您将结账转换为其他路径。

请注意,如果您使用多个代理,则每次使用其他代理时都需要手动执行结帐。如果MAY使用相同的工作空间,但无法保证。你应该总是运行checkout scm,以防万一没有。