流水线设计
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.9'
- run: pip install -r requirements.txt
- run: pytest -q
缓存依赖
- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
部署:打标签自动发布
push 标签触发构建镜像
- 推送到镜像仓库
- 服务器
watchtower 自动拉取更新
注意事项
- 敏感信息(服务器密钥)用 GitHub Secrets 存储
- 权限遵循最小化原则:
permissions: contents: read
- 每个 Job 独立环境,状态检查要等所有 Job 通过