引言
在现代软件开发中,团队协作效率和持续集成/持续部署(CI/CD)已经成为衡量项目成熟度的关键指标。本文将深入讲解 Git 工作流的最佳实践,以及如何利用 GitHub Actions 实现自动化部署。
Git 协作工作流
一个规范的 Git 协作流程能避免大部分合并冲突和代码管理混乱。以下是推荐的工作流:
分支命名规范
feature/功能名– 新功能开发分支fix/问题描述– Bug修复分支hotfix/紧急修复– 生产环境紧急修复refactor/重构范围– 代码重构
Commit 消息规范
使用 Conventional Commits 格式,让提交历史清晰可读:
# 格式: type(scope): description
git commit -m "feat(user): 添加用户登录功能"
git commit -m "fix(api): 修复数据查询超时问题"
git commit -m "docs: 更新部署文档"
推荐的工作流程
- 从
main创建功能分支 - 在分支上进行开发并频繁提交
- 完成开发后推送分支到远程
- 创建 Pull Request 请求合并
- 代码审查通过后合并到主分支
GitHub Actions 基础
GitHub Actions 是 GitHub 内置的 CI/CD 工具,通过 YAML 配置文件定义工作流。
基本结构
name: CI/CD Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
实战:Node.js 项目自动化部署
下面是一个完整的 Node.js 项目 CI/CD 示例,包含测试、构建和部署:
1. 测试和构建工作流
name: Node.js CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run linter
run: npm run lint
- name: Run tests
run: npm test
env:
CI: true
2. 自动化部署到服务器
name: Deploy to Production
on:
push:
branches: [main]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Build project
run: npm run build
- name: Deploy to server
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_KEY }}
script: |
cd /var/www/myapp
git pull origin main
npm ci --production
pm2 restart all
pm2 logs --lines 50
Secrets 安全配置
敏感信息如服务器密码、SSH 密钥等必须使用 GitHub Secrets:
- 进入仓库 Settings → Secrets and variables → Actions
- 点击 “New repository secret”
- 添加所需 secrets:HOST、USERNAME、SSH_KEY 等
⚠️ 重要提示:永远不要将敏感信息直接写在 YAML 配置文件中!
常用 Actions 推荐
actions/checkout– 检出代码actions/setup-node– 设置 Node.js 环境actions/setup-python– 设置 Python 环境appleboy/ssh-action– SSH 远程执行actions/upload-artifact– 上传构建产物actions/download-artifact– 下载构建产物
总结
通过规范化的 Git 协作流程配合 GitHub Actions 自动化工具,团队可以显著提升开发效率,减少人为错误,实现快速、可靠的持续集成和部署。
建议从今天开始就尝试建立这套工作流,小团队也能拥有大厂级的工程化能力!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END















暂无评论内容