CICD:Circle CI 实现CICD

持续集成解决什么问题

  • 提高软件质量
  • 效率迭代
  • 便捷部署
  • 快速交付、便于管理

持续集成(CI)

集成,就是一些孤立的事物或元素通过某种方式集中在一起,产生联系,从而构建一个有机整体的过程。

持续,就是指长期的对项目代码进行集成。

持续集成是指将所有开发者工作副本每天多次合并到主干的做法。

持续集成强调开发人员提交了新代码之后,立刻进行构建、测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。

持续部署(CD)

对于一个成熟的CICD管到来说,最后的阶段就是持续部署。作为持续交付——自动将生产就绪型构建版本发不到代码存储库的延伸。

持续集成组成要素

一个最小化的持续集成系统需要包含以下几个要素:

  • 版本管理系统
  • 构建脚本和工具
  • CI服务器

Circle CI

使用Circle CI 实现github的持续集成

  1. 注册CircleCI
    进入CircleCI官网,使用github账号登录,同意github授权

  2. 在项目中添加config.yml文件

    version: 2.1
    jobs:
      build:
        docker:
          - image: cimg/node:18.18.1
        # branches:
        #   only: "main"
        steps:
          - add_ssh_keys:
              fingerprints:
                - "c8:bf:ed:9c:f6:b9:45:93:7d:aa:17:be:d0:06:ba:27"
          - checkout
          - restore_cache:
              keys:
                - dependencies-
          - run:
              name: install
              command: npm install
          - save_cache:
              paths:
                - node_modules
              key: dependencies-
          - run:
              name: Build github pages
              command: npm run build
          - run:
              name: Prepare shell commands
              command: chmod +x scripts/deploy.sh
          - run:
              name: Run Deploy scripts
              command: ./scripts/deploy.sh
    workflows:
      deploy:
        jobs:
          - build
    
  3. 添加启动存储库
    登录circleci网站后,点击首页右上角的go to application,会进入下面的页面,在该页面中点击左边菜单的projects,然后在选择需要使用circleci的项目后点击右边的set up project
    在这里插入图片描述

  4. 配置ssh key
    在上面的那个页面中点击右边的已经set up的仓库名称进入项目页面,然后点击右边的project settings。
    在这里插入图片描述
    点击project settings 后进入设置页面,选中左边菜单的ssh keys 在user key 选项中点击add user key。
    在这里插入图片描述

  5. 更改项目后使用git命令提交项目即可自动部署到github pages

如果需要通过github pages访问项目,需要在github的项目仓库中点击设置,在设置页面中选中左边的菜单栏中的pages,在Build and deployment"选项中,选择要部署的分支
在这里插入图片描述
然后访问username.github.io查看您的新网站。请注意,在将更改推送到GitHub后,发布对网站的更改可能需要长达10分钟的时间

猜你喜欢

转载自blog.csdn.net/qq_40850839/article/details/133821470