因為團隊中想使用PHPCS來檢查代碼風格,所以考慮了兩個方案.一個是基于GIT HOOKS
的行為觸發(fā),一個是基于GITLAB-CI
的一系列部署.考慮再三使用了gitlab-ci
的解決方案.
了解gitlab-ci的運行機制.
要想使用gitlab-ci
,首先要明白它的組成. 這個東西有兩個東西來支撐:
- gitlab-ci server
- gitlab-ci-runner
gitlab-ci server
負責調(diào)度蝇更、觸發(fā)Runner,以及獲取返回結(jié)果. 而gitlab-ci-runner
則是主要負責來跑自動化CI
的一個宿主機子.
那么我們總結(jié)一下流程,其實是這個樣子的:
Runner的概念
runner
可以想象成一個守護進程,來守護你注冊好的service
和gitlab-ci
綁定. 一個宿主機里的runner
可以維護多個不同的service
. 而gitlab-ci
在收到需要build的請求時,會通知service
執(zhí)行你在.gitlab-ci.yml
里面指定好的腳本,然后根據(jù)命令行的返回結(jié)果來決定這次build
的成功還是失敗.
在了解完了這些概念以后我們就可以很輕松的搭建一個runner了.
GITLAB-CI搭配Runner的使用
安裝Runner
首先要找一臺服務(wù)器來創(chuàng)建Runner铃慷,因為是要跟你的
gitlab
服務(wù)關(guān)聯(lián)锅很,所以服務(wù)器要可以訪問你的gitlab
服務(wù)。安裝gitlab-CI-multi-runner
gitlab-ci-multi-runner是CI runner的運行程序,這里有多種安裝方式(見這里),這里我們使用了第一種:在linux中安裝軟件。
友情提示: 在安裝時由于網(wǎng)絡(luò)問題不好安裝,可以直接找到deb包下載后安裝.
gitlab-ci-multi-runner命令介紹
- 執(zhí)行
gitlab-ci-multi-runner help
可以看到所有命令的簡介,在每個命令加--help
可以看到更加具體的參數(shù)趟佃,比如gitlab-ci-multi-runner start --help
,命令的執(zhí)行順序為:register(注冊runner)-->install(安裝服務(wù))-->start(運行服務(wù))
.
GITLAB-CI配置
打開網(wǎng)址(比如你的gitlab服務(wù)地址是: http://gitlab.your.company/
,那gitlab CI的地址就是:http://gitlab.your.company/ci
),找到想要配置CI的項目,點擊后面的按鈕Add project to CI
,給項目配置CI功能.進入CI項目,進入Runners
標簽頁面闲昭,可以看到CI的url和token罐寨,這2個值是待會用命令注冊runner時所需要的。
在runner
的服務(wù)器上注冊runner
汤纸,執(zhí)行命令gitlab-ci-multi-runner register --user="你的用戶"
,下面是執(zhí)行命令后的交互信息衩茸。
友情提示:如果你用的是docker的執(zhí)行方式,可以先把對應(yīng)的docker的image下載下來贮泞,不然第一次執(zhí)行CI會比較慢楞慈。
- 安裝服務(wù)
執(zhí)行命令gitlab-ci-multi-runner install -n "服務(wù)名"
,后面的服務(wù)名是自己定義的名稱,用來后面啟動命名使用啃擦,與其相對的命令是uninstall
.
啟動服務(wù)囊蓝,執(zhí)行命令gitlab-ci-multi-runner start -n "服務(wù)名"
,與其相類似的命令有stop
和restart
.
驗證runner
,執(zhí)行gitlab-ci-multi-runner verify
,可以看到runner的運行情況.
root@cloudeye:~# gitlab-ci-multi-runner verify
aliveINFO[0000] 79bf814a Veryfing runner... is
aliveINFO[0000] 207a4b34 Veryfing runner... is
aliveINFO[0000] 20f849f7 Veryfing runner... is
aliveINFO[0000] 6e07e13a Veryfing runner... is
aliveINFO[0000] 23be6deb Veryfing runner... is
aliveINFO[0000] 4e348964 Veryfing runner... is
啟動服務(wù)后令蛉,可以在剛才的CI runners
頁面看到已經(jīng)有runner
出現(xiàn)了聚霜。
gitlab-ci.yaml文件
配置好了runner
,要讓CI
跑起來珠叔,還需要在項目根目錄放一個.gitlab-ci.yml
文件,在這個文件里面可以定制CI的任務(wù),下面是簡單的示例文件蝎宇,更多的用法可以看官方文檔
jobName:
script:
- ls
- php command.php
...(比喻,使用直接刪掉本行)
only:
develp
自己磕磕碰碰總結(jié)出來的,有不對的地方希望可以指正.