端午节嗖的一下子就过去,该搬砖了,今天就接着上篇文章接着研究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服务器上。
这边还在上传代码中,下一篇继续分享,祝学习顺利!