0
我正在使用我非常喜歡的新Jenkins管道DSL。我的Jenkinsfile
可能是相當典型的,使用maven在GIT的master
分支中編譯/單元測試代碼,是一個碼頭構建,部署到舞臺等。對管道的末端有一個手動步驟,用戶必須確認建立生產,例如Jenkins管道DSL自動中止輸入
stage name: 'Production Deploy', concurrency:1
input 'Do you want to deploy to production?'
node {
sh "./bin/production-deploy.sh"
}
但是,構建塊直到有人接受/拒絕。有沒有辦法自動拒絕input
,如果有人踢掉了構建(通過合併代碼到master
分支)?
分離CD管道的CI管道。在您構建,測試和部署從開發階段到登臺階段的CI管道中,有人驗證登臺部署,並在第二步中在部署到生產階段時執行DC管道。這樣你就有了獨立的生命週期開發過程和獨立的交付過程。 – johnnynemonic
你是否建議每個項目有2個管道?這是做這件事的最佳做法嗎?我認爲(通過閱讀「持續交付」一書http://martinfowler.com/books/continuousDelivery.html),您希望在單個構建流水線中的所有階段(編譯 - >分段 - > QA - >等 - >生產) – bobmarksie
你的情況,是的。在本書提出的案例中,如果整個過程是自動化的,並且沒有暫停或人爲交互,那麼順利進行。並且您已在您的基礎架構中實施了一些藍/綠部署的功能,這些功能允許在VM節點中驗證您的部署,同時爲其他VM節點提供生產服務。 – johnnynemonic