日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Gitlab就自帶持續(xù)集成工具,而且很好用

 本文轉(zhuǎn)載自微信公眾號(hào)「 小姐姐味道」,作者 小姐姐養(yǎng)的狗。轉(zhuǎn)載本文請(qǐng)聯(lián)系 小姐姐味道公眾號(hào)。

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供軹城網(wǎng)站建設(shè)、軹城做網(wǎng)站、軹城網(wǎng)站設(shè)計(jì)、軹城網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、軹城企業(yè)網(wǎng)站模板建站服務(wù),10多年軹城做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

“公司的代碼資產(chǎn),要放在公司內(nèi)部。防止一切不可見(jiàn)的敵人,通過(guò)腐朽老套的方式,對(duì)公司的利益產(chǎn)生非法的侵占?!?/p>

SVN的年代,已經(jīng)一去不復(fù)返,現(xiàn)在都用上了高大上的git。雖然有Gitea、Gogs這樣更加輕量級(jí)的git代碼托管平臺(tái),但目前應(yīng)用最廣泛的,還是gitlab。

搭建GitLab過(guò)程并沒(méi)有想象中的簡(jiǎn)單,因?yàn)樗荝uby寫的,又是依賴DB,又是依賴Redis,而且有權(quán)限要求。但這東西,也就折騰一次,剩下的就是享受它的功能了。

我們平常的開(kāi)發(fā)中,不可或缺的有一些持續(xù)集成的需求。比起再部署一個(gè)jenkins,使用gitlab的CI功能,更加如絲般柔滑。

1. 一個(gè)樣例

gitlab實(shí)現(xiàn)ci功能很簡(jiǎn)單,直接在倉(cāng)庫(kù)的頂層目錄,創(chuàng)建一個(gè).gitlab-ci.yml文件,就可以了。我們大多數(shù)的應(yīng)用,就配置這樣一個(gè)文件就OK了。

下面是一個(gè)vuepress項(xiàng)目的ci文件。

 
 
 
 
  1. image: xjjdog.cn:5000/node:8.16.2 
  2.  
  3. pages: 
  4.   tags: 
  5.     - pages 
  6.   cache: 
  7.     paths: 
  8.       - node_modules/ 
  9.  
  10.   script: 
  11.     - npm config set registry http://xjjdog.cn:8082/repository/npm-all/ 
  12.     - npm install 
  13.     - npm run docs:build 
  14.   artifacts: 
  15.     paths: 
  16.       - public 
  17.   only: 
  18.     - master 

以上的腳本,將在每次提交代碼到master的時(shí)候,自動(dòng)觸發(fā)執(zhí)行。它將自動(dòng)編譯node項(xiàng)目,并發(fā)布到該發(fā)布的地方。

在左側(cè)菜單,可以找到相關(guān)的菜單。

點(diǎn)擊進(jìn)入,可以看到執(zhí)行的結(jié)果和操作人等等。碼、包一體,是不是比jenkins更加直觀?好用?

2. yaml文件

所以我們的工作內(nèi)容,就全部集中到y(tǒng)aml文件的編寫上。

你會(huì)發(fā)現(xiàn),不論你是使用docker-compose,還是使用k8s,甚至是現(xiàn)在的Gitlab CI,你本質(zhì)上,就是一個(gè)YAML工程師。

YAML工程師!是自動(dòng)化時(shí)代先進(jìn)生產(chǎn)力的代表。

我們來(lái)瞧一下.gitlab-ci.yml中的關(guān)鍵概念。其實(shí)從它身上,我們能夠看到Makefile的一點(diǎn)影子。

  • images/services 這個(gè)關(guān)鍵字可以使用Docker的鏡像和服務(wù)運(yùn)行Job
  • only only是匹配的意思,比如上面只匹配master分支的提交和merge
  • stages 一個(gè)stages可以定義多個(gè)分段,用于定義一個(gè)pipeline的不同流程節(jié)點(diǎn)(job)
  • stage 表示一個(gè)stages的子項(xiàng),一般用來(lái)給job定一個(gè)一個(gè)名字。比如,我們上面的pages,就是job的名字
  • cache cache用來(lái)定義一些需要在任務(wù)之間進(jìn)行緩存的目錄和文件
  • script 真正要執(zhí)行的命令,可以是一個(gè)shell腳本。如果腳本執(zhí)行不成功,流程就會(huì)終止
  • before_script,after_script用來(lái)定義前置和后置腳本
  • variables 自定義構(gòu)建變量
  • artifacts 將生成的資源作為pipeline運(yùn)行成功的附件上傳,并在gitlab交互界面上提供下載。如果你發(fā)布的是一個(gè)靜態(tài)目錄,比如vuepress編譯后的結(jié)果,這個(gè)是最合適的。
  • tags tags是Job的一個(gè)標(biāo)記。

3. runner

這個(gè)tags是什么意思呢?當(dāng)你第一次使用的時(shí)候,可能會(huì)因?yàn)樗呐渲缅e(cuò)誤,造成ci無(wú)法執(zhí)行。

我們?cè)谧髠?cè)的菜單里面,找到全局的settings,里面也有一個(gè)CI/CD,其中有一個(gè)Runners選項(xiàng),就是用來(lái)配置Runner鎖關(guān)聯(lián)的tag的。

也就是說(shuō),你需要安裝一個(gè)叫做GitLab Runner的東西。它才是我們?nèi)蝿?wù)真正執(zhí)行的節(jié)點(diǎn)。

安裝完畢之后,需要執(zhí)行g(shù)itlab-runner register注冊(cè)進(jìn)來(lái)。只有你在看到下面字樣的時(shí)候,才證明你的tags為pages的任務(wù)能夠執(zhí)行。

從上面的描述中,我們就可以看出來(lái),這個(gè)gitlab-runner,是分布式的,我們可是利用空間的機(jī)器,部署多個(gè)runner。所以,不用擔(dān)心會(huì)對(duì)原gitlab服務(wù)器造成壓力。

任務(wù)執(zhí)行時(shí)間太長(zhǎng),一直掛著占用資源怎么辦?

可以使用timeout來(lái)設(shè)置過(guò)期時(shí)間。

 
 
 
 
  1. JobName: 
  2.   script: restart 
  3.   timeout: 30m 

為什么gitlab可以作為一個(gè)比較理想的CI平臺(tái)呢?

因?yàn)樵谒希凶钤嫉拇a。有持續(xù)集成工具。有Wiki,甚至想要更高級(jí)的Pages,也有。

對(duì)于一個(gè)git項(xiàng)目來(lái)說(shuō),可以說(shuō)你想要的,它都有了。而且所有的變更,都可以在一個(gè)普通的.gitlab-ci.yml文件里進(jìn)行變更??梢哉f(shuō)gitlab是一個(gè)十分鋒利的工具了。

事實(shí)上,為了讓操作更加柔滑,我們使用了gitlab的rest api。通過(guò)配置相應(yīng)的token,就可以使用Java代碼,控制gitlab的所有行為。

把它集成在自己公司的工具庫(kù)里面,感覺(jué)是非常棒的。

作者簡(jiǎn)介:小姐姐味道 (xjjdog),一個(gè)不允許程序員走彎路的公眾號(hào)。聚焦基礎(chǔ)架構(gòu)和Linux。十年架構(gòu),日百億流量,與你探討高并發(fā)世界,給你不一樣的味道。我的個(gè)人微信xjjdog0,歡迎添加好友,進(jìn)一步交流。


文章標(biāo)題:Gitlab就自帶持續(xù)集成工具,而且很好用
瀏覽地址:http://m.5511xx.com/article/dhoidgh.html