基於Gitlab 的 CI/CD入門

CI/CD 中的「CI」始終指持續集成,它屬於開發人員的自動化流程。成功的 CI 意味着應用代碼的新更改會按期構建、測試併合併到共享存儲庫中。該解決方案能夠解決在一次開發中有太多應用分支,從而致使相互衝突的問題。
CI/CD 中的「CD」指的是持續交付和/或持續部署,這些相關概念有時會交叉使用。二者都事關管道後續階段的自動化,但它們有時也會單獨使用,用於說明自動化程度。

Hello world

咱們經過gitlab.com建立一個空項目用於CI/CD學習node

clipboard.png

在根目錄下面添加 .gitlab-ci.yamlreact

build:
  stage: build
  script:
    - echo 'Hello, World'

這是一個簡單的 "Hello World" 示例,上面的文件咱們稱爲編排文件,編排文件中job爲最小執行任務,咱們的編排文件中目前只有一個任務git

  • 第一行的build爲該job的名稱
  • 第二行表示該job的階段
  • 第三行下面的子節點爲該任務的執行命令

運行效果

clipboard.png

clipboard.png

多個任務(job)

咱們能夠經過在.gitlab-ci.yaml添加多個job來實現多任務編排,每一個job能夠指定不一樣的image(Docker鏡像)github

build:
  stage: build
  image: image: node:10-alpine
  script:
    - npm -v
    - node -v
    - echo 'build done'

test:
  stage: test
  script:
    - echo 'test done'
    
deploy:
  stage: test
  script:
    - echo 'deploy done'

運行效果

clipboard.png

clipboard.png

簡單應用

咱們經過Create React App來建立一個簡單的React工程並對該項目進行CI/CDnpm

$ npx create-react-app test_ci

更新.gitlab-ci.yaml以下app

cache:
  paths:
    - node_modules

build:
  image: node:10-alpine
  stage: build
  script:
    - yarn install
    - yarn build
  artifacts:
    paths:
      - build

test:
  image: node:10-alpine
  stage: test
  script:
    - yarn test
    
deploy:
  stage: deploy
  script:
    - ls build

上面的文件有兩個新概念cacheartifactsgitlab

  • cache是一個跨任務的共享文件和文件夾的方式
  • artifacts是一個可以被下載的CI/CD附件

效果

clipboard.png

點擊下載後能夠將構建後的靜態資源下載到本地學習

clipboard.png

咱們能夠經過serve等命令運行後查看測試

相關文章
相關標籤/搜索