Gitlab-ci前端持續集成應用

一、Gitlab-ci && Gitlab-ci-runner

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

Gitlab Runner安裝方式有兩種,一種是直接二進制文件安裝,一種是基於docker鏡像安裝。後端

二進制文件安裝緩存

  • 下載對應操做系統的二進制包,我這裏使用的是mac版本,
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
複製代碼
  • 給 gitlab-ci-multi-runner 設置權限
sudo chmod +x /usr/local/bin/gitlab-ci-multi-runner
複製代碼

以上是官方安裝文檔,若是有問題,能夠手動到版本下載列表下載對應的版本,而後複製到/usr/local/bin/目錄下bash

  • 註冊runner 首先,進入到你的 gitlab 項目網頁,找到 Settings -> CI/CD -> Runner,而後找到對應的 url 和 token

而後在終端輸入服務器

依次是url,token,描述,tag,是否共享,執行方式

啓動Runner,gitlab-ci-multi-runner start,刷新頁面curl

說明註冊成功了。

咱們能夠經過 gitlab-ci-multi-runner list 查詢你註冊的runner ,用 gitlab-ci-multi-runner status 查看 runner 服務是否運行中。

基於Docker安裝

  • 先獲取 gitlab-runner 鏡像
sudo docker pull gitlab/gitlab-runner:latest
複製代碼
  • 啓動 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
複製代碼
  • 註冊runner
sudo docker exec -it gitlab-runner gitlab-ci-multi-runner register
註冊方式同上
複製代碼

三、配置.gitlab-ci.yml

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。

4.參考資料

相關文章
相關標籤/搜索