溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用Jenkins構(gòu)建CI/CD流水線

發(fā)布時(shí)間:2021-12-22 16:42:34 來(lái)源:億速云 閱讀:162 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要為大家展示了“如何使用Jenkins構(gòu)建CI/CD流水線”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何使用Jenkins構(gòu)建CI/CD流水線”這篇文章吧。

什么是流水線?

在進(jìn)入本教程之前,了解有關(guān) CI/CD流水線pipeline的知識(shí)會(huì)很有幫助。

首先,了解 Jenkins 本身并不是流水線這一點(diǎn)很有幫助。只是創(chuàng)建一個(gè)新的 Jenkins 作業(yè)并不能構(gòu)建一條流水線。可以把  Jenkins 看做一個(gè)遙控器,在這里點(diǎn)擊按鈕即可。當(dāng)你點(diǎn)擊按鈕時(shí)會(huì)發(fā)生什么取決于遙控器要控制的內(nèi)容。Jenkins 為其他應(yīng)用程序  API、軟件庫(kù)、構(gòu)建工具等提供了一種插入 Jenkins 的方法,它可以執(zhí)行并自動(dòng)化任務(wù)。Jenkins  本身不執(zhí)行任何功能,但是隨著其它工具的插入而變得越來(lái)越強(qiáng)大。

流水線是一個(gè)單獨(dú)的概念,指的是按順序連接在一起的事件或作業(yè)組:

流水線pipeline”是可以執(zhí)行的一系列事件或作業(yè)。

理解流水線的最簡(jiǎn)單方法是可視化一系列階段,如下所示:

如何使用Jenkins構(gòu)建CI/CD流水線

Pipeline example

在這里,你應(yīng)該看到兩個(gè)熟悉的概念:階段Stage步驟Step。

  • 階段:一個(gè)包含一系列步驟的塊。階段塊可以命名為任何名稱(chēng);它用于可視化流水線過(guò)程。

  • 步驟:表明要做什么的任務(wù)。步驟定義在階段塊內(nèi)。

在上面的示例圖中,階段 1 可以命名為 “構(gòu)建”、“收集信息”或其它名稱(chēng),其它階段塊也可以采用類(lèi)似的思路?!安襟E”只是簡(jiǎn)單地說(shuō)放上要執(zhí)行的內(nèi)容,它可以是簡(jiǎn)單的打印命令(例如,echo "Hello, World")、程序執(zhí)行命令(例如,java HelloWorld)、shell 執(zhí)行命令( 例如,chmod 755 Hello)或任何其他命令,只要通過(guò) Jenkins 環(huán)境將其識(shí)別為可執(zhí)行命令即可。

Jenkins 流水線以編碼腳本的形式提供,通常稱(chēng)為 “Jenkinsfile”,盡管可以用不同的文件名。下面這是一個(gè)簡(jiǎn)單的 Jenkins 流水線文件的示例:

// Example of Jenkins pipeline script pipeline {  stages {    stage("Build") {      steps {          // Just print a Hello, Pipeline to the console          echo "Hello, Pipeline!"          // Compile a Java file. This requires JDKconfiguration from Jenkins          javac HelloWorld.java          // Execute the compiled Java binary called HelloWorld. This requires JDK configuration from Jenkins          java HelloWorld          // Executes the Apache Maven commands, clean then package. This requires Apache Maven configuration from Jenkins          mvn clean package ./HelloPackage          // List the files in current directory path by executing a default shell command          sh "ls -ltr"      }    }   // And next stages if you want to define further...  } // End of stages} // End of pipeline

從此示例腳本很容易看到 Jenkins 流水線的結(jié)構(gòu)。請(qǐng)注意,默認(rèn)情況下某些命令(如 java、javacmvn)不可用,需要通過(guò) Jenkins 進(jìn)行安裝和配置。 因此:

Jenkins 流水線是一種以定義的方式依次執(zhí)行 Jenkins 作業(yè)的方法,方法是將其編碼并在多個(gè)塊中進(jìn)行結(jié)構(gòu)化,這些塊可以包含多個(gè)任務(wù)的步驟。

好。既然你已經(jīng)了解了 Jenkins 流水線是什么,我將向你展示如何創(chuàng)建和執(zhí)行 Jenkins 流水線。在本教程的最后,你將建立一個(gè) Jenkins 流水線,如下所示:

如何使用Jenkins構(gòu)建CI/CD流水線

Final Result

如何構(gòu)建 Jenkins 流水線

為了便于遵循本教程的步驟,我創(chuàng)建了一個(gè)示例 GitHub 存儲(chǔ)庫(kù)和一個(gè)視頻教程。

開(kāi)始本教程之前,你需要:

  • Java 開(kāi)發(fā)工具包(JDK):如果尚未安裝,請(qǐng)安裝 JDK 并將其添加到環(huán)境路徑中,以便可以通過(guò)終端執(zhí)行 Java 命令(如 java jar)。這是利用本教程中使用的 Java Web Archive(WAR)版本的 Jenkins 所必需的(盡管你可以使用任何其他發(fā)行版)。

  • 基本計(jì)算機(jī)操作能力:你應(yīng)該知道如何鍵入一些代碼、通過(guò) shell 執(zhí)行基本的 Linux 命令以及打開(kāi)瀏覽器。

讓我們開(kāi)始吧。

步驟一:下載 Jenkins

導(dǎo)航到 Jenkins 下載頁(yè)面。向下滾動(dòng)到  “Generic Java package (.war)”,然后單擊下載文件;將其保存在易于找到的位置。(如果你選擇其他 Jenkins  發(fā)行版,除了步驟二之外,本教程的其余步驟應(yīng)該幾乎相同。)使用 WAR 文件的原因是它是個(gè)一次性可執(zhí)行文件,可以輕松地執(zhí)行和刪除。

如何使用Jenkins構(gòu)建CI/CD流水線

Download Jenkins as Java WAR file

步驟二:以 Java 二進(jìn)制方式執(zhí)行 Jenkins

打開(kāi)一個(gè)終端窗口,并使用 cd <your path> 進(jìn)入下載 Jenkins 的目錄。(在繼續(xù)之前,請(qǐng)確保已安裝 JDK 并將其添加到環(huán)境路徑。)執(zhí)行以下命令,該命令將 WAR 文件作為可執(zhí)行二進(jìn)制文件運(yùn)行:

java -jar ./jenkins.war

如果一切順利,Jenkins 應(yīng)該在默認(rèn)端口 8080 上啟動(dòng)并運(yùn)行。

如何使用Jenkins構(gòu)建CI/CD流水線

Execute as an executable JAR binary

步驟三:創(chuàng)建一個(gè)新的 Jenkins 作業(yè)

打開(kāi)一個(gè) Web 瀏覽器并導(dǎo)航到 localhost:8080。除非你有以前安裝的 Jenkins,否則應(yīng)直接轉(zhuǎn)到 Jenkins 儀表板。點(diǎn)擊 “Create New Jobs”。你也可以點(diǎn)擊左側(cè)的 “New Item”。

如何使用Jenkins構(gòu)建CI/CD流水線

Create New Job

步驟四:創(chuàng)建一個(gè)流水線作業(yè)

在此步驟中,你可以選擇并定義要?jiǎng)?chuàng)建的 Jenkins 作業(yè)類(lèi)型。選擇 “Pipeline” 并為其命名(例如,“TestPipeline”)。單擊 “OK” 創(chuàng)建流水線作業(yè)。

如何使用Jenkins構(gòu)建CI/CD流水線

Create New Pipeline Job

你將看到一個(gè) Jenkins 作業(yè)配置頁(yè)面。向下滾動(dòng)以找到 “Pipeline” 部分。有兩種執(zhí)行 Jenkins  流水線的方法。一種方法是在 Jenkins 上直接編寫(xiě)流水線腳本,另一種方法是從 SCM(源代碼管理)中檢索 Jenkins  文件。在接下來(lái)的兩個(gè)步驟中,我們將體驗(yàn)這兩種方式。

步驟五:通過(guò)直接腳本配置并執(zhí)行流水線作業(yè)

要使用直接腳本執(zhí)行流水線,請(qǐng)首先從 GitHub 復(fù)制該 Jenkinsfile 示例的內(nèi)容。選擇  “Pipeline script” 作為 “Destination”,然后將該 Jenkinsfile 的內(nèi)容粘貼到 “Script”  中?;ㄒ恍r(shí)間研究一下 Jenkins 文件的結(jié)構(gòu)。注意,共有三個(gè)階段:Build、Test 和  Deploy,它們是任意的,可以是任何一個(gè)。每個(gè)階段中都有一些步驟;在此示例中,它們只是打印一些隨機(jī)消息。

單擊 “Save” 以保留更改,這將自動(dòng)將你帶回到 “Job Overview” 頁(yè)面。

如何使用Jenkins構(gòu)建CI/CD流水線

Configure to Run as Jenkins Script

要開(kāi)始構(gòu)建流水線的過(guò)程,請(qǐng)單擊 “Build Now”。如果一切正常,你將看到第一個(gè)流水線(如下面的這個(gè))。

如何使用Jenkins構(gòu)建CI/CD流水線

Click Build Now and See Result

要查看流水線腳本構(gòu)建的輸出,請(qǐng)單擊任何階段,然后單擊 “Log”。你會(huì)看到這樣的消息。

如何使用Jenkins構(gòu)建CI/CD流水線

Visit sample GitHub with Jenkins get clone link

步驟六:通過(guò) SCM 配置并執(zhí)行流水線作業(yè)

現(xiàn)在,換個(gè)方式:在此步驟中,你將通過(guò)從源代碼控制的 GitHub 中復(fù)制 Jenkinsfile 來(lái)部署相同的 Jenkins 作業(yè)。在同一個(gè) GitHub 存儲(chǔ)庫(kù)中,通過(guò)單擊 “Clone or download” 并復(fù)制其 URL 來(lái)找到其存儲(chǔ)庫(kù) URL。

如何使用Jenkins構(gòu)建CI/CD流水線

Checkout from GitHub

單擊 “Configure” 以修改現(xiàn)有作業(yè)。滾動(dòng)到 “Advanced Project Options” 設(shè)置,但這一次,從  “Destination” 下拉列表中選擇 “Pipeline script from SCM” 選項(xiàng)。將 GitHub 存儲(chǔ)庫(kù)的 URL  粘貼到 “Repository URL” 中,然后在 “Script Path” 中鍵入 “Jenkinsfile”。 單擊 “Save”  按鈕保存。

如何使用Jenkins構(gòu)建CI/CD流水線

Change to Pipeline script from SCM

要構(gòu)建流水線,回到 “Task Overview” 頁(yè)面后,單擊 “Build Now” 以再次執(zhí)行作業(yè)。結(jié)果與之前相同,除了多了一個(gè)稱(chēng)為 “Declaration: Checkout SCM” 的階段。

如何使用Jenkins構(gòu)建CI/CD流水線

Build again and verify

要查看來(lái)自 SCM 構(gòu)建的流水線的輸出,請(qǐng)單擊該階段并查看 “Log” 以檢查源代碼控制克隆過(guò)程的進(jìn)行情況。

如何使用Jenkins構(gòu)建CI/CD流水線

Verify Checkout Procedure

除了打印消息,還能做更多

恭喜你!你已經(jīng)建立了第一個(gè) Jenkins 流水線!

“但是等等”,你說(shuō),“這太有限了。除了打印無(wú)用的消息外,我什么都做不了?!蹦菦](méi)問(wèn)題。到目前為止,本教程僅簡(jiǎn)要介紹了 Jenkins 流水線可以做什么,但是你可以通過(guò)將其與其他工具集成來(lái)擴(kuò)展其功能。以下是給你的下一個(gè)項(xiàng)目的一些思路:

  • 建立一個(gè)多階段的 Java 構(gòu)建流水線,從以下階段開(kāi)始:從 Nexus 或 Artifactory 之類(lèi)的 JAR 存儲(chǔ)庫(kù)中拉取依賴項(xiàng)、編譯 Java 代碼、運(yùn)行單元測(cè)試、打包為 JAR/WAR 文件,然后部署到云服務(wù)器

  • 實(shí)現(xiàn)一個(gè)高級(jí)代碼測(cè)試儀表板,該儀表板將基于 Selenium 的單元測(cè)試、負(fù)載測(cè)試和自動(dòng)用戶界面測(cè)試,報(bào)告項(xiàng)目的運(yùn)行狀況。

  • 構(gòu)建多流水線或多用戶流水線,以自動(dòng)化執(zhí)行 Ansible 劇本的任務(wù),同時(shí)允許授權(quán)用戶響應(yīng)正在進(jìn)行的任務(wù)。

  • 設(shè)計(jì)完整的端到端 DevOps 流水線,該流水線可提取存儲(chǔ)在 SCM 中的基礎(chǔ)設(shè)施資源文件和配置文件(例如 GitHub),并通過(guò)各種運(yùn)行時(shí)程序執(zhí)行該腳本。

學(xué)習(xí)本文結(jié)尾處的任何教程,以了解這些更高級(jí)的案例。

管理 Jenkins

在 Jenkins 主面板,點(diǎn)擊 “Manage Jenkins”。

如何使用Jenkins構(gòu)建CI/CD流水線

Manage Jenkins

全局工具配置

有許多可用工具,包括管理插件、查看系統(tǒng)日志等。單擊 “Global Tool Configuration”。

如何使用Jenkins構(gòu)建CI/CD流水線

Global Tools Configuration

增加附加能力

在這里,你可以添加 JDK 路徑、Git、Gradle 等。配置工具后,只需將該命令添加到 Jenkinsfile 中或通過(guò) Jenkins 腳本執(zhí)行即可。

如何使用Jenkins構(gòu)建CI/CD流水線

以上是“如何使用Jenkins構(gòu)建CI/CD流水線”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI