搭建自动部署管道(CI/CD Pipeline)的核心目标是:代码提交后,自动完成构建 → 测试 → 部署,减少人工操作、提高交付效率和质量。
下面我按通用步骤 + 常见技术方案给你一个可落地的指南。
一个典型的自动部署管道包括:
my-project/
├── src/
├── package.json
├── Dockerfile
└── .github/workflows/deploy.yml
.github/workflows/deploy.yml
name: CI/CD Pipeline
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 拉取代码
uses: actions/checkout@v3
- name: 安装 Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: 安装依赖
run: npm install
- name: 单元测试
run: npm test
- name: 构建
run: npm run build
- name: 部署到服务器
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
key: ${{ secrets.SSH_KEY }}
script: |
cd /var/www/my-project
git pull
npm install
pm2 restart app
FROM node:18-alpine
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]
- name: 构建镜像
run: docker build -t my-app:latest .
- name: 推送镜像
run: docker push my-registry/my-app:latest
| 策略 | 说明 |
|---|---|
| 蓝绿部署 | 两套环境,切换流量 |
| 滚动更新 | 逐步替换实例 |
| 金丝雀发布 | 先放少量流量 |
| 回滚机制 | 失败自动回退 |
✅ 环境分离
✅ 密钥管理
✅ 质量门禁
✅ 可观测性
我可以帮你直接写一套可用的 Pipeline 配置。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。