美文网首页
基于Gitlab 的 CI/CD入门

基于Gitlab 的 CI/CD入门

作者: 张伯函 | 来源:发表于2019-06-27 17:22 被阅读0次

    CI/CD 中的“CI”始终指持续集成,它属于开发人员的自动化流程。成功的 CI 意味着应用代码的新更改会定期构建、测试并合并到共享存储库中。该解决方案可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题。
    CI/CD 中的“CD”指的是持续交付和/或持续部署,这些相关概念有时会交叉使用。两者都事关管道后续阶段的自动化,但它们有时也会单独使用,用于说明自动化程度。

    Hello world

    我们通过gitlab.com创建一个空项目用于CI/CD学习

    image.png

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

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

    这是一个简单的 "Hello World" 示例,上面的文件我们称为编排文件,编排文件中job为最小执行任务,我们的编排文件中目前只有一个任务

    • 第一行的build为该job的名称
    • 第二行表示该job的阶段
    • 第三行下面的子节点为该任务的执行命令

    运行效果

    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来创建一个简单的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

    点击下载后可以将构建后的静态资源下载到本地

    image.png

    我们可以通过serve等命令运行后查看

    相关文章

      网友评论

          本文标题:基于Gitlab 的 CI/CD入门

          本文链接:https://www.haomeiwen.com/subject/myarcctx.html