2017-10-12 21 views
0

有沒有方法可以在Jenkinsfile中使用「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

如果設置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,以防萬一它沒有。

+0

太棒了!我不知道你這樣做!我不確定什麼情景會保證多個代理商,但我也會對此進行一些研究。謝謝! – grayaii

+1

例如,說一個代理商有一個特定的軟件,或者您需要運行部分生成或測試在Windows上,部分在Linux上,然後你可以爲每一個代理指定不同的代理 –

+0

那麼這是否可以解決你的問題?如果是這樣,我會很感激你能否把這個標記爲公認的答案。 –