GitHub Actions 基础配置
在项目根目录下创建 .github/workflows 文件夹,并新增一个 YAML 文件(如 deploy.yml)。以下是一个基础模板:
name: CI/CD Pipeline
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
定义构建任务
添加构建任务到 YAML 文件,以 Node.js 项目为例:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: '16'
- run: npm install
- run: npm run build
自动化测试集成
在构建后添加测试步骤,确保代码质量:
- run: npm test
- name: Upload coverage
uses: codecov/codecov-action@v1
部署到生产环境
根据目标环境添加部署步骤。以下是部署到 AWS S3 的示例:
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: npm install
- run: npm run build
- name: Deploy to S3
uses: jakejarvis/s3-sync-action@v0.5
with:
args: --acl public-read --delete
env:
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
环境变量与密钥管理
敏感信息应存储在 GitHub Secrets 中:
- 进入仓库 Settings > Secrets
- 添加新密钥(如
AWS_ACCESS_KEY_ID) - 在 YAML 中通过
${{ secrets.NAME }}引用
多环境部署策略
通过条件触发实现分环境部署:
deploy-prod:
needs: build
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps: [...生产环境步骤]
deploy-stage:
needs: build
if: github.ref == 'refs/heads/develop'
runs-on: ubuntu-latest
steps: [...预发布环境步骤]
通知与监控
添加成功/失败通知到 Slack:
- name: Slack Notification
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_COLOR: ${{ job.status }} # 根据状态变色
SLACK_TITLE: 'Deployment Status'

被折叠的 条评论
为什么被折叠?



