您好,登錄后才能下訂單哦!
[TOC]
從某種抽象層次上講,部署流水線(Deployment pipeline)是指從軟件版本控制庫到用戶手中這一過程的自動化表現(xiàn)形式?!冻掷m(xù)交付——發(fā)布可靠軟件的系統(tǒng)方法》(下稱《持續(xù)交付》)
按《持續(xù)交付》中的定義,Jenkins本來就支持pipeline(通常會把部署流水線簡稱為pipeline,本書會交替使用這兩個術(shù)語),只是一開始不叫pipeline,而叫任務(wù)。
Jenkins 1.x只能通過界面手動操作來“描述”部署流水線。Jenkins 2.x終于支持pipeline as code了,可以通過“代碼”來描述部署流水線。
使用“代碼”而不是UI的意義在于:
Jenkinsfile就是一個文本文件,也就是部署流水線概念在Jenkins中的表現(xiàn)形式。像Dockerfile之于Docker。所有部署流水線的邏輯都寫在Jenkinsfile中。
Jenkins pipeline有2種語法:腳本式(Scripted)語法和聲明式(Declar-ative)語法。
腳本式語法使用Groovy語言,其語法靈活、可擴展,但是也意味著更復(fù)雜。再者,Groovy語言的學(xué)習(xí)成本對于(不使用Groovy的)開發(fā)團隊來說通常是不必要的。所以才有了聲明式語法,一種提供更簡單、更結(jié)構(gòu)化(more opinionated)的語法。
- pipeline插件從2.5版本開始,才同時支持兩種格式的語法;
- 推薦主要使用聲明式語法,腳本式語法作為輔助;
為了便于維護和協(xié)作,使用版本倉庫對pipeline進行版本控制是生產(chǎn)使用過程中的最優(yōu)選擇。
本人實踐過程中也是推薦書中提到的使用Git作為版本控制倉庫,使用Jenkins ssh私鑰作為憑證。
以下為本實驗地址:
https://github.com/ygqygq2/jenkins2_learning_install_tools
目的
使用jenkins拉取git倉庫內(nèi)pipeline構(gòu)建maven項目,達到了解pipeline基本用法。
環(huán)境
實踐
mvn-3.5.4
jdk-8u172
注意這里需要oracle帳戶驗證。
因為jenkins-slave是整合kubernetes的,因此每次構(gòu)建都會安裝tools,如上圖可以看出,maven安裝包需要從官方下載,這對效率影響非常大。
若想優(yōu)化可以考慮jenkins-slave鏡像中直接整合maven,而不是使用jenkins tools;還可以使用docker-in-docker配合maven鏡像。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。