我想手動啟動管道作業。然后該作業應每天運行,并在 7 天后自動停止。有沒有辦法做到這一點?
uj5u.com熱心網友回復:
AFAIK對此沒有OOB解決方案。但是你可以用 Groovy 實作一些東西來實作你所需要的。例如,檢查以下管道。在下面的管道中,如果手動觸發,我將添加一個每天運行的 Cron 運算式,然后在經過預定義的運行次數后洗掉玉米運算式。您應該能夠微調以下內容并達到您的需要。
def expression = getCron()
pipeline {
agent any
triggers{ cron(expression) }
stages {
stage('Example') {
steps {
script {
echo "Build"
}
}
}
}
}
def getCron() {
def runEveryDayCron = "0 9 * * *" //Runs everyday at 9
def numberOfRunsToCheck = 7 // Will run 7 times
def currentBuildNumber = currentBuild.getNumber()
def job = Jenkins.getInstance().getItemByFullName(env.JOB_NAME)
for(int i=currentBuildNumber; i > currentBuildNumber - numberOfRunsToCheck; i--) {
def build = job.getBuildByNumber(i)
if(build.getCause(hudson.model.Cause$UserIdCause) != null) { //This is a manually triggered Build
return runEveryDayCron
}
}
return ""
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/511673.html
