16贰镣、Jenkins Pipeline項(xiàng)目

1 CI/CD 持續(xù)集成/持續(xù)部署

持續(xù)集成(Continuous integration)呜象,開發(fā)團(tuán)隊(duì)經(jīng)常集成他們的工作,每天發(fā)生多次集成碑隆。每次集成通過自動化構(gòu)建(包括編譯恭陡、發(fā)布、自動化測試)來驗(yàn)證上煤,從而盡早地發(fā)現(xiàn)集成錯誤休玩。

持續(xù)部署(Continuous Deployment)通過自動化的構(gòu)建、測試和部署循環(huán)來快速交付高質(zhì)量產(chǎn)品劫狠。

持續(xù)交付(Continuous Delivery)頻繁地將軟件的新版本拴疤,交付給質(zhì)量團(tuán)隊(duì)或者用戶,以供評審盡早發(fā)現(xiàn)生產(chǎn)環(huán)境中存在的問題独泞;如果評審?fù)ㄟ^遥赚,代碼就進(jìn)入生產(chǎn)階段。

2 Pipeline概念

Pipeline是一個(gè)用戶定義的CD流水線模式阐肤。Pipeline代碼定義了通常包含構(gòu)建、測試和發(fā)布步驟的完整構(gòu)建過程讲坎。
Node
Node是一個(gè)機(jī)器孕惜,它是Jenkins環(huán)境的一部分,并且能夠執(zhí)行Pipeline晨炕。同時(shí)衫画,node代碼塊也是腳本式Pipeline語法的關(guān)鍵特性。
Stage
Stage塊定義了在整個(gè)Pipeline中執(zhí)行的概念上不同的任務(wù)子集(例如“構(gòu)建”瓮栗,“測試”和“部署”階段)削罩。
Step
一項(xiàng)任務(wù),一個(gè)Stage包含多個(gè)Step费奸。一個(gè)步驟告訴Jenkins在特定的時(shí)間點(diǎn)要做什么弥激。例如,使用sh step:sh 'make'可以執(zhí)行make這個(gè)shell命令愿阐。

3 Pipeline 腳本式語法

pipeline{
agent any
stages{
  stage("get code"){
    steps{
        echo "get code from scm"
    }
  }
  stage("package"){
    steps{
        echo "package code"
    }
  }
  stage("deploy"){
    steps{
        echo "deploy package to node1"
    }
   }
}
}

4 Pipeline示例

4.1 簡單示例

Pipeline 腳本包含3步微服,每一步只進(jìn)行輸出

pipeline{
agent any
stages{
  stage("get code"){
    steps{
        echo "get code from scm"
    }
  }
  stage("package"){
    steps{
        echo "package code"
    }
  }
  stage("deploy"){
    steps{
        echo "deploy package to node1"
    }
   }
}
}

4.1.1 具體步驟

在Jenkins中新建一個(gè)pipeline項(xiàng)目




寫入Pipeline腳本



立即構(gòu)建后,出現(xiàn)流水線

查看log可以查看每一步的詳細(xì)信息

4.2 使用代碼包中的Jenkinsfile

Jenkins可以配置識別git代碼包中的Pipeline腳本



Gitlab的項(xiàng)目中上傳Pipeline腳本

Pipeline腳本的具體內(nèi)容:在package階段進(jìn)行代碼打包缨历,deploy階段進(jìn)行代碼到web服務(wù)器上線以蕴。Jenkins項(xiàng)目的工作目錄是/var/lib/jenkins/workspace/項(xiàng)目名稱

pipeline{
agent any
stages{
  stage("get code"){
    steps{
        echo "get code from scm"
    }
  }
  stage("unit test"){
    steps{
        echo "unit test"
    }
  }
  stage("package"){
    steps{
        sh 'tar -zcf /tmp/web-$BUILD_ID.tar.gz ./* --exclude=.git --exclude=Jenkinsfile'
    }
  }
  stage("deploy"){
    steps{
        sh 'ssh root@10.0.0.7 "cd /html && mkdir web-$BUILD_ID"'
        sh 'scp /tmp/web-$BUILD_ID.tar.gz root@10.0.0.7:/html/web-$BUILD_ID'
        sh 'ssh root@10.0.0.7 "cd /html/web-$BUILD_ID && tar xf web-$BUILD_ID.tar.gz && rm -rf web-$BUILD_ID.tar.gz"'
        sh 'ssh root@10.0.0.7 "cd /html && rm -rf www && ln -s web-$BUILD_ID www"'
        sh 'ssh root@10.0.0.7 "chown -R nginx:nginx /html/web-$BUILD_ID"'
    }
   }
}
}

Pipeline腳本中的$BUILD_ID變量是Jenkins的構(gòu)建ID



配置后進(jìn)行構(gòu)建測試


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辛孵,隨后出現(xiàn)的幾起案子丛肮,更是在濱河造成了極大的恐慌,老刑警劉巖魄缚,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宝与,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)伴鳖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門节值,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人榜聂,你說我怎么就攤上這事搞疗。” “怎么了须肆?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵匿乃,是天一觀的道長。 經(jīng)常有香客問我豌汇,道長幢炸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任拒贱,我火速辦了婚禮宛徊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逻澳。我一直安慰自己闸天,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布斜做。 她就那樣靜靜地躺著苞氮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瓤逼。 梳的紋絲不亂的頭發(fā)上笼吟,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機(jī)與錄音霸旗,去河邊找鬼贷帮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛诱告,可吹牛的內(nèi)容都是我干的皿桑。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼蔬啡,長吁一口氣:“原來是場噩夢啊……” “哼诲侮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起箱蟆,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤沟绪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后空猜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绽慈,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恨旱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坝疼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搜贤。...
    茶點(diǎn)故事閱讀 40,680評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖钝凶,靈堂內(nèi)的尸體忽然破棺而出仪芒,到底是詐尸還是另有隱情,我是刑警寧澤耕陷,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布掂名,位于F島的核電站,受9級特大地震影響哟沫,放射性物質(zhì)發(fā)生泄漏饺蔑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一嗜诀、第九天 我趴在偏房一處隱蔽的房頂上張望猾警。 院中可真熱鬧,春花似錦隆敢、人聲如沸发皿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至尊浪,卻和暖如春匣屡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拇涤。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工捣作, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鹅士。 一個(gè)月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓券躁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親掉盅。 傳聞我的和親對象是個(gè)殘疾皇子也拜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容