当前位置: 首页 > news >正文

CI/CD自动化部署(持续集成和持续交付/部署)

  • 持续集成:开发人员频繁地将代码集成到共享仓库,然后自动运行测试
  • 持续交付:自动准备好发布,但需要手动触发部署
  • 持续部署:完全自动化的,不需要人工干预

流程:

比如,当开发人员提交代码到版本控制系统(比如GitHub),然后触发CI流程,自动运行测试、构建,如果成功的话就进行部署。常见的工具可能有Jenkins、GitLab CI、Travis CI、CircleCI或者GitHub Actions这些。需要配置这些工具来监听代码变更,然后执行一系列步骤。

常用工具:

  • CI/CD 平台:Jenkins、GitLab CI、GitHub Actions、CircleCI、Travis CI。

  • 容器化Docker、Kubernetes。

  • 部署工具:Ansible、Terraform、Helm。

实施步骤: 

选择工具:根据项目需求选择工具(如GitHub Actions适合GitHub仓库用户)。

配置代码仓库

  • 在版本控制系统(如GitHub)中托管代码。

  • 设置分支策略(如main分支用于生产,dev分支用于开发)。

编写 CI/CD 配置文件

# .github/workflows/deploy.ymlname: Build and Deploy     #更新到服务器
on:push:# push 代码的时候,那个分支会收到影响,这里是mian主分支branches: [ main ]# 推送之后执行一系列的任务
jobs:build:runs-on: ubuntu-lateststeps:# 获取代码- name: Checkout code# 使用action库 action/checkout获取代码uses: actions/checkout@v4- name: Install Node.js    # 安装nodeuses: actions/setup-node@v4with:node-version: '20'- name: Install dependencies # 安装依赖run: npm install- name: Run testsrun: npm test- name: Build projectrun: npm run builddeploy:needs: buildruns-on: ubuntu-lateststeps:- name: Deploy to serveruses: appleboy/ssh-action@v1with:host: ${{ secrets.SERVER_IP }}username: ${{ secrets.SSH_USERNAME }}key: ${{ secrets.SSH_PRIVATE_KEY }}script: |cd /var/www/my-appgit pull origin mainnpm install --productionpm2 restart my-app

敏感信息管理

  • 使用CI/CD工具的Secrets功能(如GitHub Secrets)存储SSH密钥、API令牌等。

多环境部署

  • 分阶段部署(开发 → 测试 → 生产),通过条件判断或手动审批控制流程

示例环境判断

deploy-prod:needs: testif: github.ref == 'refs/heads/main'runs-on: ubuntu-lateststeps: [...]

gitlab实现自动化部署 

gitlab支持通过配置CI/CD实现自动化部署我们的代码项目,主要核心就是配置gitlab-ci.yml文件以及在目标服务器上配置gitlab-runner 

总结:

  • 项目根目录创建yml文件(选择手动部署好处:频繁自动化部署消耗性能)
  • 提交push后,远程会自动读取yml文件,触发自动化安装,编译,部署(有默认的share runner可选择不安装project runners)
  • 点击,部署

gitlab项目新增:.gitlab-ci.yml,如:

stages:- build- run- cleanbuild:stage: buildonly:- masterscript:- docker build -t test-cicd:v1.0.0 .run:stage: runonly:- masterscript:- docker-compose down- docker-compose up -dclean:stage: cleanonly:- masterscript:- docker image prune -f

 gitlab上查看gitlab-runner配置方法

 gitlab实现CI/CD自动化部署_gitlab cicd自动化部署-CSDN博客

相关文章:

  • 小白学习java第15天:JDBC
  • 【高频考点精讲】CSS accent-color属性:如何快速自定义表单控件的颜色?
  • 基于深度学习的图像压缩技术(一)
  • 【java源码】AI智能导诊系统,基于H5、小程序、app等多端,引导患者自助就诊挂号,实现科学就诊
  • 学习整理在centos7上安装mysql8.0版本教程
  • 缓存与数据库一致性深度解析与解决方案
  • WSL2-自定义安装
  • 大模型提示词如何编写
  • FreeRTOS
  • FerretDB:基于PostgreSQL的MongoDB替代产品
  • 【QQMusic项目界面开发复习笔记】第二章
  • 【电路笔记】-多绕组变压器
  • 59、微服务保姆教程(二)Nacos--- 微服务 注册中心 + 配置中心
  • OS库的常用操作
  • 分布式定时任务(xxl-job)
  • FreeRTOS学习笔记【10】-----任务上下文切换
  • 学生管理系统微服务方式实现
  • SQLAlchemy 2.x 异步查询方法比较
  • Rust 学习笔记:函数和控制流
  • tcp 和http 网络知识
  • 准“90后”山西壶关县委常委、副县长高雅亭赴北京密云挂职
  • 北京朝阳法院:未经许可使用他人剧本语句和情节构成侵权
  • 王珊珊读《吾自绝伦》|摘掉皮普斯的“假发”
  • 神舟二十号载人飞行任务新闻发布会将于4月23日上午召开
  • 当代读书人的暗号:不是拆快递,是拆出版社样书!|世界读书日特辑
  • 上海市委财经委会议分析研判当前经济运行情况,调度部署下阶段重点工作