0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Pipeline改造過程中的幾點(diǎn)主要經(jīng)驗(yàn)分享

8nfr_ZTEdevelop ? 來源:未知 ? 作者:李倩 ? 2018-04-13 10:26 ? 次閱讀

概述

經(jīng)過前面三篇文章的詳細(xì)介紹,講述了本項(xiàng)目在Jenkins2.0 Pipeline實(shí)踐和iPipeline框架(plll庫(kù))應(yīng)用的過程中的一些思考、改進(jìn)以及實(shí)踐,而本文作為系列文章的最后一篇,主要想分享一下本項(xiàng)目在過去一段時(shí)間中對(duì)于Jenkins2.0 Pipeline改造的一些經(jīng)驗(yàn)。

經(jīng)驗(yàn)分享

XXX項(xiàng)目遷移到Pipeline已經(jīng)有一段時(shí)間了,期間不斷重構(gòu),不斷改進(jìn)和演化,本文準(zhǔn)備在此給出幾條本項(xiàng)目Pipeline改造過程中的幾點(diǎn)主要經(jīng)驗(yàn)分享。

1. 建議項(xiàng)目打造分層模式的Pipeline流程

本項(xiàng)目啟用CI分層策略,打造了4個(gè)層次的CI流程,分別為:

VerifyCI

MergeCI

DailyCI

TagCI

其中VerifyCI和MergeCI用于開發(fā)人員平時(shí)合代碼、DailyCI對(duì)應(yīng)每日構(gòu)建,而TagCI則用于版本構(gòu)建,各司其職,層次分明。

具體如下圖所示:

2. 建議打造多層次并行的Pipeline流程

不同Pipeline之間可并行Jenkins已天然支持,而利用iPipeline則能支持同一個(gè)Pipeline的不同任務(wù)之間的并行,而再具體到某個(gè)任務(wù)內(nèi)則設(shè)計(jì)者應(yīng)根據(jù)各自項(xiàng)目實(shí)際情況,盡量將任務(wù)內(nèi)各步驟設(shè)計(jì)成并行模式。本項(xiàng)目對(duì)VerifyCI任務(wù)內(nèi)的各步驟運(yùn)行規(guī)劃如下,能并行的步驟盡量并行執(zhí)行:

3. 關(guān)于MergeCI的運(yùn)行模式與流程的摸索

該部分可以參考:-Jenkins2.0 Pipeline框架(iPipeline)優(yōu)化實(shí)踐之路(三:MergeCI機(jī)制研究)

4. 關(guān)于Jenkinsfile托管方式的小技巧

雖然說一般要求將Jenkinsfile與所在代碼庫(kù)的代碼放在一起托管,即將Jenkinsfile置于代碼庫(kù)根目錄,但我們?cè)趯?shí)際實(shí)踐中發(fā)現(xiàn)一個(gè)問題是,一旦代碼庫(kù)比較龐大,每次Pipeline運(yùn)行時(shí)去解析Jenkinsfile時(shí)也是需要很長(zhǎng)時(shí)間的,背后的原因不言而喻。

因此我們實(shí)際試驗(yàn)發(fā)現(xiàn):Jenkinsfile 與 代碼庫(kù)可分離!即可以將置于其他Gerrit庫(kù)路徑中Jenkinsfile對(duì)另外一個(gè)Gerrit庫(kù)的代碼做CI編排,原因在于要做CI編排的庫(kù)路徑是人為地配置在Jenkinsfile中的。

舉例來說明:

本項(xiàng)目VerifyCI的Jenkinsfile托管路徑位于:xxx.xxx.com.cn/XXXXX/xxxxx_lib_verifyci

從VerifyCI的屬性參數(shù)中可以看出,如下圖所示:

然后我們的代碼庫(kù)地址則是另外一個(gè),其配置于Jenkinsfile之中:

env.GERRIT_SERVER_NAME ="XXXXX_VerifyCI"

env.GERRIT_SERVER_URL ="ssh://xxxxx_jenkins@gerrit.zte.com.cn:29418/"

env.GERRIT_PROJECT = env.GERRIT_PROJECT?:"XXXXX/tool"http:// 實(shí)際代碼庫(kù)地址

plll.set_default_properties("verifyci",[

gerrit:[

server:"${env.GERRIT_SERVER_NAME}",

projects:[[project:"${env.GERRIT_PROJECT}", branch:"${plll.getJobBaseName()}"]]

]

]);

如此一來便實(shí)現(xiàn)了二者的分離。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4697

    瀏覽量

    68086
  • Pipeline
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    9332
  • devops
    +關(guān)注

    關(guān)注

    0

    文章

    107

    瀏覽量

    11980

原文標(biāo)題:DevOps 案例 | Jenkins2.0 Pipeline框架(iPipeline)優(yōu)化實(shí)踐之路(四)

文章出處:【微信號(hào):ZTEdeveloper,微信公眾號(hào):中興開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux安裝的幾點(diǎn)經(jīng)驗(yàn)

    Linux的應(yīng)用軟件比較少,Native分區(qū)也不必留的太大。我建議Native分區(qū)不要超過2.5G?! ?. 由于安裝過程中會(huì)詢問一些有關(guān)硬件的信息,因此要提前搜集好PC硬件方面的信息。硬件信息主要
    發(fā)表于 09-13 10:16

    使用WiFi的過程中總結(jié)的一些經(jīng)驗(yàn)

    簡(jiǎn)述在我們做項(xiàng)目開發(fā),經(jīng)常會(huì)用到WiFi,這次給大家分享一下我在使用WiFi的過程中總結(jié)的一些經(jīng)驗(yàn),這次用到的是esp8266WiFi模塊,如圖所示。引腳連接:GND:接地GPIO16:其實(shí)是
    發(fā)表于 08-05 07:30

    無線充電電力傳輸過程中主要的損耗是什么

    無線充電電力傳輸過程中主要的損耗:1.供電端的驅(qū)動(dòng)組件,主要是MOSFET的開關(guān)損耗2. 供電端和受電端的線圈與諧振電容通過電流的損耗3.受電端的整流部分,交流到直流的轉(zhuǎn)換損耗4.受電端的穩(wěn)壓轉(zhuǎn)換
    發(fā)表于 09-15 07:13

    Linux安裝的幾點(diǎn)經(jīng)驗(yàn)

    Linux安裝的幾點(diǎn)經(jīng)驗(yàn) Linux安裝的幾點(diǎn)經(jīng)驗(yàn)  有關(guān)于Linux操作系統(tǒng)的好處許多文章都已經(jīng)有介紹過了,想必大家一定都知道一些,前不久,我在我的電腦上安裝了一套
    發(fā)表于 01-18 12:40 ?398次閱讀

    ATX_電源維修的幾點(diǎn)經(jīng)驗(yàn)

    ATX_電源維修的幾點(diǎn)經(jīng)驗(yàn),ATX_電源維修的幾點(diǎn)經(jīng)驗(yàn)
    發(fā)表于 05-27 17:04 ?13次下載

    PCB布線的幾點(diǎn)經(jīng)驗(yàn)

    PCB布線的幾點(diǎn)經(jīng)驗(yàn),感興趣的小伙伴們可以看看。
    發(fā)表于 07-26 15:18 ?0次下載

    淺析STM32調(diào)試過程中的幾個(gè)相關(guān)問題

    總的來講,單片機(jī)調(diào)試是單片機(jī)開發(fā)工作必不可少的環(huán)節(jié)。不管你愿不愿意,調(diào)試過程中總會(huì)有各種不期而遇的問題出現(xiàn)在我們面前來磨礪我們。這里分享幾點(diǎn)STM32調(diào)試過程中與開發(fā)工具及IDE有關(guān)的幾個(gè)常見問題,以供參考。
    的頭像 發(fā)表于 01-21 13:50 ?5326次閱讀

    5G網(wǎng)絡(luò)建設(shè)過程中的規(guī)劃及經(jīng)驗(yàn)總結(jié)

    5G建設(shè)過程中難點(diǎn),杭州移動(dòng)在快速規(guī)劃、天面快速改造、靈活傳輸組網(wǎng)方案和動(dòng)力改造方案4個(gè)方面做出一些探索。
    發(fā)表于 06-20 09:23 ?1.8w次閱讀
    5G網(wǎng)絡(luò)建設(shè)<b class='flag-5'>過程中</b>的規(guī)劃及<b class='flag-5'>經(jīng)驗(yàn)</b>總結(jié)

    5G網(wǎng)絡(luò)建設(shè)過程中的各種規(guī)劃建以及經(jīng)驗(yàn)總結(jié)

    5G建設(shè)過程中難點(diǎn),杭州移動(dòng)在快速規(guī)劃、天面快速改造、靈活傳輸組網(wǎng)方案和動(dòng)力改造方案4個(gè)方面做出一些探索。
    發(fā)表于 06-21 08:57 ?1.4w次閱讀
    5G網(wǎng)絡(luò)建設(shè)<b class='flag-5'>過程中</b>的各種規(guī)劃建以及<b class='flag-5'>經(jīng)驗(yàn)</b>總結(jié)

    如何降低數(shù)模設(shè)計(jì)過程中的數(shù)模干擾

    數(shù)模設(shè)計(jì)過程中要避免照搬經(jīng)驗(yàn)和規(guī)則,但要徹底講清這個(gè)問題,首先要明白數(shù)模干擾的機(jī)理,數(shù)字對(duì)模擬的影響可以分為以下兩種情況。
    發(fā)表于 03-27 14:05 ?898次閱讀

    嵌入式開發(fā)過程中的一點(diǎn)調(diào)試經(jīng)驗(yàn)

    嵌入式開發(fā)過程中的一點(diǎn)調(diào)試經(jīng)驗(yàn)嵌入式開發(fā)最麻煩的在現(xiàn)場(chǎng)調(diào)試過程中或?qū)嶋H運(yùn)營(yíng)過程中出現(xiàn)問題很難定位。我在實(shí)際開發(fā)過程中一點(diǎn)
    發(fā)表于 11-02 18:06 ?15次下載
    嵌入式開發(fā)<b class='flag-5'>過程中</b>的一點(diǎn)調(diào)試<b class='flag-5'>經(jīng)驗(yàn)</b>

    Verilog設(shè)計(jì)過程中的一些經(jīng)驗(yàn)與知識(shí)點(diǎn)

     “ 本文主要分享了在Verilog設(shè)計(jì)過程中一些經(jīng)驗(yàn)與知識(shí)點(diǎn),主要包括塊語句、阻塞賦值和非阻塞賦值 以及結(jié)構(gòu)說明語句(initial, always, task, function)
    的頭像 發(fā)表于 03-15 12:19 ?2298次閱讀

    升壓變流器的幾點(diǎn)調(diào)試經(jīng)驗(yàn)

    升壓變流器的幾點(diǎn)調(diào)試經(jīng)驗(yàn)
    發(fā)表于 11-02 08:16 ?0次下載
    升壓變流器的<b class='flag-5'>幾點(diǎn)</b>調(diào)試<b class='flag-5'>經(jīng)驗(yàn)</b>

    PipelinethrowIt的用法

    字如其名,來看下PipelinethrowIt的用法,是怎么個(gè)丟棄方式。
    的頭像 發(fā)表于 10-21 16:24 ?491次閱讀
    <b class='flag-5'>Pipeline</b><b class='flag-5'>中</b>throwIt的用法

    什么是pipeline?Go構(gòu)建流數(shù)據(jù)pipeline的技術(shù)

    本文介紹了在 Go 構(gòu)建流數(shù)據(jù)pipeline的技術(shù)。 處理此類pipeline的故障很棘手,因?yàn)?b class='flag-5'>pipeline
    的頭像 發(fā)表于 03-11 10:16 ?506次閱讀