基于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等命令运行后查看测试

相关文章
相关标签/搜索