最基本的連續(xù)交付流程將至少具有三個(gè)階段,這些階段應(yīng)在以下內(nèi)容中定義Jenkinsfile:構(gòu)建,測(cè)試和部署。
對(duì)于本節(jié),我們將主要關(guān)注部署階段,但應(yīng)該注意的是,穩(wěn)定的構(gòu)建和測(cè)試階段是任何部署活動(dòng)的重要前身。
Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building'
}
}
stage('Test') {
steps {
echo 'Testing'
}
}
stage('Deploy') {
steps {
echo 'Deploying'
}
}
}
}
Toggle Scripted Pipeline (Advanced)
Jenkinsfile (Scripted Pipeline)
node {
stage('Build') {
echo 'Building'
}
stage('Test') {
echo 'Testing'
}
stage('Deploy') {
echo 'Deploying'
}
}
一個(gè)常見(jiàn)的模式是擴(kuò)展級(jí)別以捕獲額外的部署環(huán)境,如“分段”或“生產(chǎn)”,如下面的代碼段所示。
stage('Deploy - Staging') {
steps {
sh './deploy staging'
sh './run-smoke-tests'
}
}
stage('Deploy - Production') {
steps {
sh './deploy production'
}
}
在這個(gè)例子中,我們假設(shè)我們的./run-smoke-tests腳本運(yùn)行的任何“煙霧測(cè)試” 都足以將釋放資格或驗(yàn)證到生產(chǎn)環(huán)境。自動(dòng)將代碼自動(dòng)部署到生產(chǎn)的這種Pipeline可以被認(rèn)為是“持續(xù)部署”的實(shí)現(xiàn)。雖然這是一個(gè)崇高的理想,但對(duì)許多人來(lái)說(shuō),連續(xù)部署可能不實(shí)際的原因很好,但仍然可以享受持續(xù)交付的好處。 Jenkins Pipeline很容易支撐兩者。
通常在階段之間,特別是環(huán)境階段之間,您可能需要人為的輸入才能繼續(xù)。例如,判斷應(yīng)用程序是否處于“促進(jìn)”到生產(chǎn)環(huán)境的狀態(tài)。這可以通過(guò)input
步驟完成。在下面的示例中,“真實(shí)檢查”階段實(shí)際上阻止輸入,如果沒(méi)有人確認(rèn)進(jìn)度,則不會(huì)繼續(xù)進(jìn)行。
Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
/* "Build" and "Test" stages omitted */
stage('Deploy - Staging') {
steps {
sh './deploy staging'
sh './run-smoke-tests'
}
}
stage('Sanity check') {
steps {
input "Does the staging environment look ok?"
}
}
stage('Deploy - Production') {
steps {
sh './deploy production'
}
}
}
}
Toggle Scripted Pipeline (Advanced)
Jenkinsfile (Scripted Pipeline)
node {
/* "Build" and "Test" stages omitted */
stage('Deploy - Staging') {
sh './deploy staging'
sh './run-smoke-tests'
}
stage('Sanity check') {
input "Does the staging environment look ok?"
}
stage('Deploy - Production') {
sh './deploy production'
}
}
這個(gè)導(dǎo)讀旨在向您介紹使用Jenkins和Jenkins Pipeline的基礎(chǔ)知識(shí)。因?yàn)樗欠浅?蓴U(kuò)展的,Jenkins可以進(jìn)行修改和配置,以處理幾乎任何方面的自動(dòng)化。要了解更多關(guān)于Jenkins可以做什么的信息,請(qǐng)查看用戶手冊(cè)或 Jenkins博客,了解最新的活動(dòng),教程和更新。
更多建議: