0
我們使用jenkins管道dsl作爲我們的工作描述。現在我們有這樣的事情:跳過jenkins管道中的一個階段而無需調用代理?
pipeline {
agent none
options {
timestamps()
}
environment {
//SOME ENV VARS
}
stages {
// more stages
stage('stage1'){
when {
expression { env.BRANCH_NAME == 'master' }
}
agent { label 'slave1' }
steps{
//doing stuff
}
}
}
在構建過程中,當主分支建立應該只運行一個階段,你能想到的在方向上的部署工作什麼的。問題是,我們擁有特定標籤的代理商的資源是有限的。當我們構建其他分支時,該作業仍然會調用slave1代理,並在分支不是主控之後跳過舞臺。這很糟糕,因爲當所有slave1代理正在執行主分支作業時,其他作業將不得不等待slave1代理可用才能檢查它是否需要運行該階段。
jenkins管道DSL有沒有什麼辦法可以在不等待slave1代理確定分支的情況下跳過該階段?
您是否在流水線的頂層聲明瞭'agent none',即*在*'stages'之前? – SevenEleven
是的,我有。見編輯 – Taron
這是多分支管道?如果是這樣,請嘗試使用'when'branch'master'}' – Nexus