前端 CI/CD 流程与自动化部署实践
背景与挑战
CI/CD(持续集成/持续部署)旨在提升交付效率,但配置不当可能增加复杂度。不同工具的配置方式各异,例如 Jenkins 的 Pipeline DSL 或 GitLab CI 的 YAML 语法,若理解不深容易引入错误。
为什么需要 CI/CD
- 自动化部署:自动完成代码测试、构建和部署,减少手动操作。
- 减少人为错误:避免手动部署时的疏忽,提高可靠性。
- 快速反馈:提交后立即测试构建,及时发现问题。
- 持续集成:确保代码持续集成,减少冲突。
- 环境一致性:保证不同环境配置一致,避免差异导致的问题。
反面教材:手动部署流程
# 典型的手动部署步骤
# 1. 手动运行测试
npm test
# 2. 手动构建项目
npm run build
# 3. 手动上传构建文件到服务器
scp -r build/* user@server:/var/www/html/
# 4. 手动重启服务
ssh user@server "sudo systemctl restart nginx"
存在的问题:
- 易出错,如忘记运行测试或构建。
- 过程不透明,难以追踪历史。
- 环境配置不一致,导致部署失败。
- 速度慢,影响开发效率。
- 无法实现自动化回滚,恢复困难。
正确的做法
GitHub Actions 配置
# .github/workflows/deploy.yml
name: Deploy to Production
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name:

