gitlab-cihtml
gitlab-ci 全稱是 gitlab continuous integration,也就是基於gitlab的持續集成工具。中心思想是當每一次push到gitlab的時候,都會觸發一次腳本執行,而後腳本的內容包括了測試,編譯,部署等一系列自定義的內容。高版本的 GitLab 自帶了 GitLab CI,因此不須要另外安裝。前端
GitLab-Runnernode
GitLab-Runner 是腳本執行的承載者,GitLab-CI 事先註冊好 GitLab-Runner,再 push 代碼,對應的 Runner 就會執行你所定義的腳本。git
本地push -> .gitlab-ci.yml配置 -> GitLab-Runner執行腳本 -> 部署開發、測試、生產服務器docker
Gitlab Runner安裝方式有兩種,一種是直接二進制文件安裝,一種是基於docker鏡像安裝。後端
二進制文件安裝緩存
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
複製代碼
sudo chmod +x /usr/local/bin/gitlab-ci-multi-runner
複製代碼
以上是官方安裝文檔,若是有問題,能夠手動到版本下載列表下載對應的版本,而後複製到/usr/local/bin/目錄下bash
而後在終端輸入服務器
啓動Runner,gitlab-ci-multi-runner start
,刷新頁面curl
咱們能夠經過 gitlab-ci-multi-runner list 查詢你註冊的runner ,用 gitlab-ci-multi-runner status 查看 runner 服務是否運行中。
基於Docker安裝
sudo docker pull gitlab/gitlab-runner:latest
複製代碼
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
複製代碼
sudo docker exec -it gitlab-runner gitlab-ci-multi-runner register
註冊方式同上
複製代碼
GitLab CI的一切工做,都是由 .gitlab-ci.yml 來配置的。詳細文檔能夠參考這裏
在項目根目錄下建立 .gitlab-ci.yml 文件
# 設置緩存
cache:
paths:
- node_modules/
- dist/
# 定義 stages,用來定義工做階段,多個 stages 會按順序進行
stages:
- build
- test
- deploy
# before_script 會在每一個 stages 執行以前運行
before_script:
- node -v
- yarn --version
- yarn global add umi
- yarn install
# 測試(對應上面stages)
test:
stage: test
script:
- echo 'yarn test'
- yarn test
# 構建
build:
stage: build
script:
- echo 'yarn build'
- yarn build
when: manual # 手動觸發
# 部署
deploy:
stage: deploy
only:
- master
script:
- bash scripts/deploy.sh # 部署腳本文件
when: manual
複製代碼
配置完成提交Gitpab後,每次push都會觸發gitlab-ci。