iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 4
0
Modern Web

Next + Ant + Apollo Graphql + Mongo 後台系統 製作與發佈系列 第 7

初探 gitlab 部署

gitlab 有個 ci/cd的功能 透過 .gitlab-ci.yml 檔案管理

image: node:8.9.1

cache:
  paths:
    - node_modules/
    - client/node_modules/
    - server/node_modules/
 
variables:
  NODE_ENV: test
  PORT: 3000

stages:
  - test
  - build
  - deploy

test:
  stage: test
  before_script:
    - apt-get update
    - npm install
    - npm run install-dev

  script:
    - npm run ci &
    - sleep 30
    - npm run test

 以下省略


通常會在gitlab 每次 merge後 指定master branch 觸發(可以指定不同的觸發點)這個script, 這個script
一開始會讓你指定環境 image: node:8.9.1
cache 如果在某一個環節跑過跳到下一個環節就不在重跑一次 例如 npm install 的 node_modules

variables 環境變數

stages 可以指定多個 想要部署的階段 通常基本都會設定 test build deploy 但根據專案大小會在調整

每個stages 例如上方的test 有 before_script script 根據需求去執行 如果該stages 程式碼沒問題就會跳往下一個 stages 直到完成 通常錯誤就會停止,但也有參數可以設定 忽略 但不建議

gitlab有提供 跑ci/cd的docker 通常在test 或 build的時候 也都會使用 gitlab提供的免費環境

但是有時候要求速度 或是最後 deploy的時候 一定要部署到自己機器時

就可以透過 git-runner 可以在stages的時候 指定 tags 就可以把script指定在自己的機器上跑

也可以同時多台執行 只要在自己的 機器上安裝 git-runner 然後在 stage中指定tag即可

總結

gitlab 提供了免費私人專案 (有限制) 還有好用簡單的 ci/cd 部署環境


上一篇
偏好設定
下一篇
Docker 化
系列文
Next + Ant + Apollo Graphql + Mongo 後台系統 製作與發佈10
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言