从零开始,打造你的个人 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 方案!

原文链接:,转发请注明来源!