假設我有一個宣告性管道。我只想在使用“從舞臺重新啟動”圖示時運行舞臺?

有沒有辦法做到這一點(方法,變數......)?我只想在使用“從舞臺重新啟動”時運行舞臺
stage('Test') {
when {
expression {
// An expression to detect if Restart from this stage is used
}
}
steps {
sh 'echo 1'
}
}
uj5u.com熱心網友回復:
你可以定義一個全域變數,將舉行,如果管道從一開始或從一個特定的階段執行代表一個布林值,在第一階段的更新,并在以后使用它when的條件來確定是否從第一階段重新開始發生.
就像是:
RESTART = true
pipeline {
agent any
stages {
stage('Setup') {
steps {
script{
// signaling pipeline was executed from the beginning (first stage)
RESTART = false
}
// other setup steps
}
}
stage('Test') {
when {
expression { return RESTART }
}
steps {
sh 'echo 1'
}
}
}
}
盡管取決于您究竟要實作什么目標,但可能有更優雅的解決方案。
uj5u.com熱心網友回復:
您可以使用currentBuild.getBuildCauses():https : //www.jenkins.io/doc/pipeline/examples/#get-build-cause
然后,在您的測驗階段添加when運算式檢查構建的原因是否與您需要的匹配。
stage('Test') {
when {
expression {
return currentBuild.getBuildCauses().any { cause ->
cause._class == 'org.jenkinsci.plugins.pipeline.modeldefinition.causes.RestartDeclarativePipelineCause'
}
}
}
steps {
sh 'echo 1'
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/370426.html
