基于Gitlab 的 CI/CD入門

CI/CD 中的“CI”始終指持續(xù)集成,它屬于開發(fā)人員的自動化流程。成功的 CI 意味著應用代碼的新更改會定期構建、測試并合并到共享存儲庫中。該解決方案可以解決在一次開發(fā)中有太多應用分支,從而導致相互沖突的問題。
CI/CD 中的“CD”指的是持續(xù)交付和/或持續(xù)部署,這些相關概念有時會交叉使用。兩者都事關管道后續(xù)階段的自動化,但它們有時也會單獨使用,用于說明自動化程度。

Hello world

我們通過gitlab.com創(chuàng)建一個空項目用于CI/CD學習

image.png

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

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

這是一個簡單的 "Hello World" 示例,上面的文件我們稱為編排文件,編排文件中job為最小執(zhí)行任務,我們的編排文件中目前只有一個任務

  • 第一行的build為該job的名稱
  • 第二行表示該job的階段
  • 第三行下面的子節(jié)點為該任務的執(zhí)行命令

運行效果

image.png
image.png

多個任務(job)

我們可以通過在.gitlab-ci.yaml添加多個job來實現多任務編排,每個job可以指定不同的image(Docker鏡像)

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'

運行效果

image.png
image.png

簡單應用

我們通過Create React App來創(chuàng)建一個簡單的React工程并對該項目進行CI/CD

$ npx create-react-app test_ci

更新.gitlab-ci.yaml如下

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

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

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

效果

image.png

點擊下載后可以將構建后的靜態(tài)資源下載到本地

image.png

我們可以通過serve等命令運行后查看

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容