成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Gitlab就自帶持續集成工具,而且很好用

開發 開發工具
“公司的代碼資產,要放在公司內部。防止一切不可見的敵人,通過腐朽老套的方式,對公司的利益產生非法的侵占。”

[[357775]]

 本文轉載自微信公眾號「 小姐姐味道」,作者 小姐姐養的狗。轉載本文請聯系 小姐姐味道公眾號。

“公司的代碼資產,要放在公司內部。防止一切不可見的敵人,通過腐朽老套的方式,對公司的利益產生非法的侵占。”

SVN的年代,已經一去不復返,現在都用上了高大上的git。雖然有Gitea、Gogs這樣更加輕量級的git代碼托管平臺,但目前應用最廣泛的,還是gitlab。

搭建GitLab過程并沒有想象中的簡單,因為它是Ruby寫的,又是依賴DB,又是依賴Redis,而且有權限要求。但這東西,也就折騰一次,剩下的就是享受它的功能了。

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

1. 一個樣例

gitlab實現ci功能很簡單,直接在倉庫的頂層目錄,創建一個.gitlab-ci.yml文件,就可以了。我們大多數的應用,就配置這樣一個文件就OK了。

下面是一個vuepress項目的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的時候,自動觸發執行。它將自動編譯node項目,并發布到該發布的地方。

在左側菜單,可以找到相關的菜單。

點擊進入,可以看到執行的結果和操作人等等。碼、包一體,是不是比jenkins更加直觀?好用?

2. yaml文件

所以我們的工作內容,就全部集中到yaml文件的編寫上。

你會發現,不論你是使用docker-compose,還是使用k8s,甚至是現在的Gitlab CI,你本質上,就是一個YAML工程師。

YAML工程師!是自動化時代先進生產力的代表。

我們來瞧一下.gitlab-ci.yml中的關鍵概念。其實從它身上,我們能夠看到Makefile的一點影子。

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

3. runner

這個tags是什么意思呢?當你第一次使用的時候,可能會因為它的配置錯誤,造成ci無法執行。

我們在左側的菜單里面,找到全局的settings,里面也有一個CI/CD,其中有一個Runners選項,就是用來配置Runner鎖關聯的tag的。

也就是說,你需要安裝一個叫做GitLab Runner的東西。它才是我們任務真正執行的節點。

安裝完畢之后,需要執行gitlab-runner register注冊進來。只有你在看到下面字樣的時候,才證明你的tags為pages的任務能夠執行。

從上面的描述中,我們就可以看出來,這個gitlab-runner,是分布式的,我們可是利用空間的機器,部署多個runner。所以,不用擔心會對原gitlab服務器造成壓力。

任務執行時間太長,一直掛著占用資源怎么辦?

可以使用timeout來設置過期時間。

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

為什么gitlab可以作為一個比較理想的CI平臺呢?

因為在它之上,有最原始的代碼。有持續集成工具。有Wiki,甚至想要更高級的Pages,也有。

對于一個git項目來說,可以說你想要的,它都有了。而且所有的變更,都可以在一個普通的.gitlab-ci.yml文件里進行變更。可以說gitlab是一個十分鋒利的工具了。

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

把它集成在自己公司的工具庫里面,感覺是非常棒的。

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

責任編輯:武曉燕 來源: 小姐姐味道
相關推薦

2019-04-18 10:35:30

持續集成工具Buddy

2012-02-23 10:22:03

JavaTeamCity

2011-05-12 14:11:12

2011-05-12 13:57:59

PHP持續集成

2023-03-19 11:47:57

Taro小程序持續集

2017-02-27 18:24:34

交付開發工具

2016-08-05 17:19:37

持續集成持續交付系統運維

2017-02-27 18:35:23

集成交付部署

2015-08-06 09:22:19

開源持續集成服務器工具

2021-03-31 09:00:00

管道集成工具

2017-10-19 09:47:55

容器化微服務集成

2018-01-12 08:29:11

持續集成工具

2015-09-24 09:43:08

阮一峰持續集成

2009-06-14 18:05:58

ibmdwWebSphere

2015-07-27 11:32:24

Docker持續集成Docker部署

2017-04-28 08:57:58

持續集成DevOpsC#

2015-09-29 10:08:26

DockerJava持續集成

2011-09-15 09:21:46

持續集成

2018-01-08 14:18:14

代碼互聯網持續集成

2017-03-01 08:56:28

VSTSTFSiOS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线看av的网址 | 一区二区三区在线 | 国产成人免费 | 狠狠夜夜 | 久久久久国产一区二区三区四区 | 中文在线一区二区 | 日韩欧美精品 | 国产精品自产拍在线观看蜜 | 国产伦一区二区三区 | 青青草这里只有精品 | 国产激情在线 | 久久国产日本 | 国产农村妇女精品一二区 | 日本不卡在线观看 | 日本一区二区三区在线观看 | 成人免费黄视频 | 岛国在线免费观看 | 国产亚洲精品久久午夜玫瑰园 | 成人在线电影在线观看 | 狠狠干2020 | 久久中文字幕一区 | 国产极品粉嫩美女呻吟在线看人 | 久久久女女女女999久久 | 欧美日韩国产在线观看 | 欧美1—12sexvideos | 国产欧美精品一区二区 | 久久亚洲一区 | 亚洲视频免费在线观看 | 韩国精品一区二区三区 | 亚洲高清在线 | 国产免费一区二区三区 | 日韩欧美国产成人一区二区 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 91观看| 日本免费一区二区三区视频 | 久久亚洲国产 | 成人欧美一区二区三区在线播放 | 中文字幕精品一区二区三区精品 | 国产成人一区二区三区电影 | 精品欧美一区二区在线观看欧美熟 | 日韩视频福利 |