Jenkins 部署

2018-08-22 10:46 更新

最基本的連續(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'
    }
}

階段作為部署環(huán)境

一個(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很容易支撐兩者。

要求人力投入進(jìn)行

通常在階段之間,特別是環(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'
    }
}

結(jié)論

這個(gè)導(dǎo)讀旨在向您介紹使用JenkinsJenkins Pipeline的基礎(chǔ)知識(shí)。因?yàn)樗欠浅?蓴U(kuò)展的,Jenkins可以進(jìn)行修改和配置,以處理幾乎任何方面的自動(dòng)化。要了解更多關(guān)于Jenkins可以做什么的信息,請(qǐng)查看用戶手冊(cè)或 Jenkins博客,了解最新的活動(dòng),教程和更新。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)