Maven系列(六)配合GitLab持續(xù)集成(CI)

前言

想要完成接下來的操作,你要做的準備工作有以下幾點:

如果你沒有接觸過Maven,沒關(guān)系,看看上面的五點,相信會讓你對Maven有一個稍微深入的了解,并會讓你迅速掌握其高大上的用法。

本節(jié)所需

先來看一下這張圖:

傳統(tǒng)與CI

傳統(tǒng)的熱部署是圖中虛線所指,通過本地執(zhí)行mvn tomcat:deploy 來將項目部署到Server1上,實線所指是借助GitLab的CI來部署,比較起來感覺沒什么兩樣,但是GitLab在這里除了作為一個代碼托管平臺之外,還擔當著自動執(zhí)行預編寫腳本的功能(下面有介紹)。
這里需要兩臺Server,我用兩個虛擬機來代替。

安裝GitLabRunner

可以再任意一臺server安裝

## 添加GitLab官方源
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
## 安裝
sudo yum install gitlab-ci-multi-runner

這里要在管理員的權(quán)限下執(zhí)行~,過程可能有點慢。
安裝完畢后,執(zhí)行gitlab-ci-multi-runner 會有命令幫助提示,如下:

[root@localhost ~]# gitlab-ci-multi-runner
NAME:
   gitlab-ci-multi-runner - a GitLab Runner

USAGE:
   gitlab-ci-multi-runner [global options] command [command options] [arguments...]
   
VERSION:
   1.8.1 (a2efdd4)
   
AUTHOR(S):
   Kamil Trzciński <ayufan@ayufan.eu> 
   
COMMANDS:
   exec                 execute a build locally
   list                 List all configured runners
   run                  run multi runner service
   register             register a new runner
   install              install service
   uninstall            uninstall service
   start                start service
   stop                 stop service
   restart              restart service
   status               get status of a service
   run-single           start single runner
   unregister           unregister specific runner
   verify               verify all registered runners
   artifacts-downloader download and extract build artifacts (internal)
   artifacts-uploader   create and upload build artifacts (internal)
   cache-archiver       create and upload cache artifacts (internal)
   cache-extractor      download and extract cache artifacts (internal)
   help, h              Shows a list of commands or help for one command
   
GLOBAL OPTIONS:
   --debug                      debug mode [$DEBUG]
   --log-level, -l "info"       Log level (options: debug, info, warn, error, fatal, panic)
   --cpuprofile                 write cpu profile to file [$CPU_PROFILE]
   --help, -h                   show help
   --version, -v                print the version

注冊Runner

Runner的成功安裝預示著我們現(xiàn)在擁有了一臺發(fā)動機,下面要將“發(fā)動機”裝在“機器”(GitLab)上。
執(zhí)行gitlab-ci-multi-runner register 開始注冊

[root@localhost ~]# gitlab-ci-multi-runner register
Running in system-mode.                            
 ## gitlab服務器的域名                                                  
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.92.128
## runnerToken,下面圖片有位置
Please enter the gitlab-ci token for this runner:
3kjzGzK4PZDA73HYPHrP
## 描述
Please enter the gitlab-ci description for this runner:
[localhost.localdomain]: 簡書·test
Please enter the gitlab-ci tags for this runner (comma separated):
js
Registering runner... succeeded                     runner=3kjzGzK4
## 執(zhí)行容器,我用的shell
Please enter the executor: virtualbox, docker-ssh+machine, docker, docker-ssh, parallels, shell, ssh, docker+machine, kubernetes:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 
新版GitLab

安裝成功之后,gitlab的頁面會多出一個


Runner

添加項目

點擊Edit進入詳細頁面


詳細頁面

我們要讓“發(fā)動機”干活,就選中項目后面的enable,讓項目的CI在這個Runner運行。

編寫CI腳本

我們要在項目的根目錄下添加一個文件.gitlab-ci.yml ,鬼知道怎么會是醬紫的文件名。

build:
    script: "pwd && mvn tomcat:deploy"

這里寫的比較簡單,直接熱部署。根據(jù)項目需要,我們可以寫更復雜的腳本,比如自動將打包的項目復制到指定位置,然后解壓啦、配置服務器相關(guān)環(huán)境啦,等等等,這些統(tǒng)統(tǒng)交給CI來做~,是不是很方便??!

項目提交上去后自動會跑CI腳本。有執(zhí)行的記錄和詳細信息

集成記錄

可能會遇到的問題

安裝Runner的服務器要安裝Maven
maven安裝。

下載maven文件,官網(wǎng)下載對應版本。http://maven.apache.org/download.cgi;
解壓下載的包,將maven目錄移動到自定義目錄下,建議移動到/opt公共目錄下,以便任何用戶能夠訪問到該目錄,例如/opt/apache-maven-3.3;
配置maven環(huán)境變量,修改/etc/profile,在文件末尾增加export M2_HOME=/opt/apache-maven-3.3(你的maven所在目錄), 將該目錄的bin目錄添加到環(huán)境變量PATH中,export PATH=$PATH:$M2_HOME/bin;
使配置生效,source /etc/profile;

測試maven安裝成功,mvn -v,出現(xiàn)配置信息如下則說明maven配置成功:

Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T19:57:37+08:00)
Maven home: /Users/turinblueice/Downloads/apache-maven-3.3.3
Java version: 1.8.0_40, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.5", arch: "x86_64", family: "mac"

說在后面

這篇應該是昨天晚上放在CSDN的,前前后后搞了半個多小時,后來在看其他頁面的時候,一不小心給退出了,然后當時就懵逼了,真是有苦說不出?。?!CSDN及時保存的功能沒有簡書做的好,所以我決定,以后再簡書上寫完,然后在復制過去~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容