从零开始,打造你的个人 CI/CD 持续集成环境
在当今 DevOps 时代,持续集成(CI)和持续部署(CD) 是软件开发中的核心环节。无论是个人项目还是企业级应用,一个高效的 CI/CD 环境能极大提升开发效率,减少人为失误。今天,我们将从零开始,搭建一个属于你自己的 CI/CD 自动化部署环境。
1. 什么是 CI/CD?
CI(Continuous Integration,持续集成):开发人员频繁地将代码提交到远程仓库,并自动进行代码构建、测试和分析。
CD(Continuous Deployment/Delivery,持续部署/交付):通过自动化的方式,将测试通过的代码部署到服务器,实现无缝更新。
常见的 CI/CD 工具包括:
o Jenkins(老牌 CI/CD 工具,功能强大但配置复杂)
o GitHub Actions(与 GitHub 结合紧密,适合个人项目)
o GitLab CI/CD(GitLab 内置 CI/CD,适合团队协作)
o Drone、CircleCI、Travis CI(适合云端 CI/CD)
2. 从零开始搭建 CI/CD
(1)选择 CI/CD 工具
本次我们使用 GitHub Actions,因为它免费、易用,并且与 GitHub 仓库无缝集成,非常适合个人开发者。
(2)创建 GitHub Actions 工作流
1. 创建 GitHub 仓库
在 GitHub 上新建一个代码仓库,例如 my-ci-cd-project。
2. 编写 Actions 工作流文件
在项目根目录创建
.github/workflows/deploy.yml 文件,并添加以下内容:
name: CI/CD Workflow
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 检出代码
uses: actions/checkout@v2
- name: 安装 Node.js
uses: actions/setup-node@v3
with:
node-version: '16'
- name: 安装依赖
run: npm install
- name: 运行测试
run: npm test
- name: 部署到服务器
run: |
ssh user@your-server "cd /var/www/my-project && git pull && npm install && pm2 restart app"
解释:
o 当代码 push 到 main 分支时,触发 CI/CD 工作流。
o 运行 checkout、Node.js 安装、依赖安装、测试和部署 任务。
o 使用 ssh 远程登录服务器,拉取最新代码并重新部署。
3. 自动化部署到云服务器
如果你有自己的服务器(如阿里云、腾讯云、VPS 等),可以通过 SSH 远程执行部署命令。
但如果你希望用 完全托管的 CI/CD 方案,可以考虑:
o Vercel / Netlify(适用于前端项目)
o Heroku / Render(适用于全栈应用)
o Docker + Kubernetes(适用于企业级应用)
4. 如何提升 CI/CD 体验?
o 启用 Webhook:让 GitHub 仓库的每次变更都自动触发 CI/CD 任务。
o 使用 Docker 容器:将 CI/CD 任务打包到 Docker 容器,减少环境依赖问题。
o 结合 Kubernetes:实现更大规模的自动化部署。
总结
通过 GitHub Actions,我们从零开始搭建了一个高效的 CI/CD 自动化部署环境,可以大大提升软件开发效率。你可以在此基础上:
o 加入数据库迁移
o 添加 Slack / 微信通知
o 结合 AWS / GCP / Azure 进行云端部署
有了 CI/CD,你将彻底告别手动部署的烦恼! 现在,赶紧动手试试吧!
你是否已经在用 CI/CD?欢迎留言讨论你的 CI/CD 方案!