上一篇講了 Docker 的使用,這篇一樣經過一個簡單示例,來說講 GitLab CI。html
gitlab-ci 全稱是 gitlab continuous integration,也就是基於 gitlab 的持續集成工具。中心思想是當每一次
push到gitlab的時候,都會觸發一次腳本執行,而後腳本的內容包括了測試,編譯,部署等一系列自定義的內容。
高版本的 GitLab 自帶了 GitLab CI,因此不須要另外安裝。node
GitLab-Runner 是腳本執行的承載者,GitLab-CI 事先註冊好 GitLab-Runner,再 push 代碼,對應的 Runner 就會執行你所定義的腳本。git
Gitlab Runner安裝方式有兩種,一種是直接二進制文件安裝,一種是基於docker鏡像安裝。docker
[1] 下載對應操做系統的二進制包,我這裏使用的是mac版本,npm
sudo curl --output /usr/local/bin/gitlab-ci-multi-runner https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-darwin-amd64
[2] 給 gitlab-ci-multi-runner 設置權限segmentfault
sudo chmod +x /usr/local/bin/gitlab-ci-multi-runner
以上是官方安裝文檔,若是有問題,能夠手動到版本下載列表下載對應的版本,而後複製到/usr/local/bin/
目錄下 ---- 反正我是本身下載安裝才能用的,淚目 T T後端
[3] 註冊runner
首先,進入到你的 gitlab 項目網頁,找到 Settings -> Pipelines,而後找到對應的 url 和 token緩存
而後在終端輸入bash
gitlab-ci-multi-runner register
而後刷新你的網頁,會看到服務器
說明註冊成功了。
另外,咱們能夠經過 gitlab-ci-multi-runner list
查詢你註冊的runner ,用 gitlab-ci-multi-runner status
查看 runner 服務是否運行中。
[1] 先獲取 gitlab-runner 鏡像
sudo docker pull gitlab/gitlab-runner:latest
[2] 啓動 gitlab-runner container
sudo docker run -d --name gitlab-runner --restart always \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest
[3] 註冊runner
sudo docker exec -it gitlab-runner gitlab-ci-multi-runner register 註冊過程略,方式同方式一步驟3.
GitLab CI的一切工做,都是由 .gitlab-ci.yml 來配置的。詳細文檔能夠參考這裏
首先,在項目根目錄下建立 .gitlab-ci.yml 文件(編輯完要提交到g itlab 才能生效):
#定義 stages,用來定義工做階段,多個 stages 會按順序進行 stages: - build - deploy_test - deploy_production # 設置緩存 cache: paths: - node_modules/ - dist/ # 安裝依賴 before_script 會在每一個 stages 執行以前運行 before_script: - npm install # 編譯 這裏對應上方 stages , build: stage: build script: # script 爲要執行的命令,能夠多條按順序執行 - npm run build # 部署測試服務器 deploy_test: stage: deploy_test only: # only 定義觸發分支,即只有在dev分支提交是 才執行如下命令 - dev script: - bash scripts/dev.sh # 部署生產服務器 deploy_production: stage: deploy_production only: - master script: - bash scripts/deploy.sh
配置完成後,當你在項目 push 代碼到 gitlab 的時候,就會觸發 gitlab-ci,而後執行你定義的代碼。
能夠在
running 表示正在運行,passed 表示經過了。
ps:有個容易遇到的坑,當你卡在 pending 不動的時候,能夠看看你的 runner 是否設置了 '無 tag 標籤也運行'
回到你的 runner,點編輯
而後,勾選第二項 Run untagged jobs
運行日誌能夠在這裏查看
那麼到這,GitLab CI 的基本使用,已經完成啦,趕快去試一下吧 :)
參考資料:
gitlab-runner 安裝
gitlab ci yaml 配置
【後端】gitlab之gitlab-ci自動部署