iT邦幫忙

1

Jenkins 流水線,在手動觸發 stage 前,有辦法不佔用 agent 嗎?

  • 分享至 

  • xImage

目前在設計 Jenkins 流水線碰到個問題是,當流水線過程設計了某一個 stage 需要人工去觸發話,在按下觸發前會持續佔用 agent,他在等我按,但我想等真正要佈署時再按啊!
https://ithelp.ithome.com.tw/upload/images/20230804/200947215Pmisn5pJk.jpg

已知拆成兩個不同作業可以避免,但就需去兩個不同作業裡執行,且作業相依性低,怕誤觸或佈署錯誤版本。設計目標是希望能像 Gitlab CI 一樣,一個 Pipeline 流水線裡前後相依,不同 Stage 的工作,可以 Unit Test、Secure Check、Build 等流程都自動,Deploy 是等真正要時再手動觸發快速上線,這中間期間都不佔用有限的 agent/executor 數量。

以下是簡易 jenkinsfile 內容,實際流程會加入其他過程,最後才視上線時間手動 Deploy

pipeline {
    agent {
        node {
            label 'master'
        }
    }
    options {
        disableConcurrentBuilds()
    }
    stages {
        stage('Build') {
            steps {
                script {
                    println("建置")
                }
            }
        }
        stage('Deploy') {
            when {
                expression { params.env == "prod" }
            }
            steps {
                input message: '確認佈署到正式環境?', submitterParameter: 'deploy'
                script {
                    println("佈署")
                }
            }
        }
    }
}
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答