CI/CD 中的「CI」始終指持續集成,它屬於開發人員的自動化流程。成功的 CI 意味着應用代碼的新更改會按期構建、測試併合併到共享存儲庫中。該解決方案能夠解決在一次開發中有太多應用分支,從而致使相互衝突的問題。
CI/CD 中的「CD」指的是持續交付和/或持續部署,這些相關概念有時會交叉使用。二者都事關管道後續階段的自動化,但它們有時也會單獨使用,用於說明自動化程度。
咱們經過gitlab.com建立一個空項目用於CI/CD學習node
在根目錄下面添加 .gitlab-ci.yaml
react
build: stage: build script: - echo 'Hello, World'
這是一個簡單的 "Hello World" 示例,上面的文件咱們稱爲編排文件,編排文件中job爲最小執行任務,咱們的編排文件中目前只有一個任務git
咱們能夠經過在.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'
咱們經過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
上面的文件有兩個新概念cache
與artifacts
gitlab
cache
是一個跨任務的共享文件和文件夾的方式artifacts
是一個可以被下載的CI/CD附件
點擊下載後能夠將構建後的靜態資源下載到本地學習
咱們能夠經過serve
等命令運行後查看測試