CI/CD用起来!

2023-10-30 19:14:24 浏览数 (2)

端午节嗖的一下子就过去,该搬砖了,今天就接着上篇文章接着研究CI/CD流程。

## CI/CD

1. 总体概括

CI/CD 是持续集成(Continuous Integration)和持续部署(Continuous Delivery/Deployment)的缩写。

持续集成 Continuous Integration

持续交付 Continuous Delivery

持续部署 Continuous Deployment

通用流程如下:

1. 开发人员向源代码管理系统(如GitLab/GitHub)推送代码。

2. 推送触发CI服务器(如GitLab CI、Jenkins、Travis CI等)自动构建代码。

3. 构建过程运行单元测试和集成测试来验证代码的正确性。

4. 如果构建成功并通过测试,则代码部署到生产环境或其他环境中。

5. 部署后运行验收测试来确认部署的应用程序符合规格。

2. 持续集成

持续集成指的是频繁地(通常每天多次)将开发人员的工作集成到主分支中,以便尽早发现并解决集成问题。它的目的是让开发团队能够更频繁地推送代码变更,确保主分支中的代码始终是健康的和通过测试的。

通过自动化构建、自动化测试以及自动化部署加上较高的集成频率.保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态。

3. 持续交付:

持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境。

4. 持续部署:

持续部署则是指软件的自动构建、测试和部署。在持续部署流程中,只要开发人员向分支推送更改,就会自动触发构建、测试和部署过程。

主要优点有:

• 提高软件质量:频繁构建和测试可快速发现并修复错误。

• 减少集成问题:小步迭代避免大批量更改导致的集成问题。

• 快速反馈:及时发现问题,对开发人员的学习和进步很有帮助。

• 持续交付:频繁自动部署让用户更早体验到新功能。

• 减少部署风险:小步部署减少每次部署的代码量,容易回滚,降低风险。

主流的CI/CD工具有:

• GitLab CI:GitLab自带的CI/CD解决方案,易于集成到Git工作流程。

• Jenkins:开源的CI/CD工具,插件丰富,扩展性强。

• Travis CI:流行的开源CI/CD工具,易于与GitHub集成。

• CircleCI:流行的SAAS CI/CD服务,界面友好,配置灵活。

• Azure DevOps:Microsoft提供的CI/CD服务,与Azure平台深度集成。

5.Gitlab-CI/CD:

gitlab 启用或关闭cicd功能:

要在项目中禁用GitLab CI/CD:

  • 在顶部栏上,选择 菜单 > 项目 并找到您的项目。
  • 在左侧边栏中,选择 设置 > 通用。
  • 展开 可见性,项目功能,权限。
  • 在 仓库 部分,关闭 CI/CD。
  • 选择 保存更改。

使用:

要使用 GitLab CI/CD,您需要:

  • 托管在 Git 仓库中的应用程序代码。
  • 仓库根目录中名为 .gitlab-ci.yml 的文件,其中包含 CI/CD 配置。
  • 当您将 .gitlab-ci.yml 文件添加到仓库时,GitLab 会检测到它,并且名为 GitLab Runner 的应用程序会运行作业中定义的脚本。

.gitlab-ci.yml 文件可能包含:

代码语言:javascript复制
stages:
  - build
  - test


build-code-job:
  stage: build
  script:
    - echo "Check the ruby version, then build some Ruby project files:"
    - ruby -v
    - rake


test-code-job1:
  stage: test
  script:
    - echo "If the files are built successfully, test some files with one command:"
    - rake test1


test-code-job2:
  stage: test
  script:
    - echo "If the files are built successfully, test other files with a different command:"
    - rake test2

前端项目CI/CD步骤:

创建GitLab仓库并上传代码

首先,需要在GitLab上创建一个新的仓库,并将Vue前端项目的代码上传到该仓库。可以使用Git命令行或Git GUI工具来完成这个步骤。

安装GitLab Runner

GitLab Runner是一个开源的工具,用于在GitLab上运行CI/CD管道。需要在服务器上安装GitLab Runner,并将其注册到GitLab中。

创建.gitlab-ci.yml文件

在Vue前端项目的根目录下创建一个名为.gitlab-ci.yml的文件。这个文件定义了GitLab CI/CD管道的流程和步骤。

下面是一个示例的.gitlab-ci.yml文件:

代码语言:javascript复制
image: node:latest

stages:
  - build
  - deploy
  
build:
  stage: build
  script:
    - npm install
    - npm run build
  artifacts:
    paths:
      - dist/

deploy:
  stage: deploy
  script:
    - apt-get update -y
    - apt-get install -y sshpass
    - sshpass -p $SSH_PASSWORD ssh -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "cd /var/www/html && rm -rf *"
    - sshpass -p $SSH_PASSWORD scp -o StrictHostKeyChecking=no -r dist/* $SSH_USER@$SSH_HOST:/var/www/html/

上面的文件定义了两个阶段(stage):build和deploy。在build阶段,我们使用npm安装依赖并打包Vue项目。在deploy阶段,我们使用sshpass工具将打包好的文件上传到Web服务器的/var/www/html目录下。

配置GitLab CI/CD管道

现在,可以在GitLab上配置CI/CD管道。在GitLab仓库的设置页面中,选择CI/CD选项卡,然后启用GitLab Runner并配置GitLab Runner的标签和执行器。接下来,将SSH_USER、SSH_PASSWORD和SSH_HOST等环境变量添加到GitLab的CI/CD变量中。

运行CI/CD管道

最后,可以手动触发CI/CD管道或等待GitLab自动触发。管道运行时,GitLab Runner将在服务器上运行.gitlab-ci.yml文件中定义的步骤。如果一切顺利,Vue前端项目将自动部署到Web服务器上。

这边还在上传代码中,下一篇继续分享,祝学习顺利!

0 人点赞