1. 搭建最小CI流水线
任务目标
为一个简单的Python项目配置GitHub Actions,实现当代码推送到main分支时,自动触发依赖安装与测试执行,形成最小可用的CI闭环。
前置准备
- 一个GitHub仓库(公开或私有均可),已包含待接入CI的Python项目
- 项目需具备
requirements.txt(或pyproject.toml)与测试文件 - 本地已安装Git,并完成仓库的推送权限配置
实现步骤
在仓库根目录创建.github/workflows/ci.yml文件,定义工作流触发条件与执行任务。核心逻辑为:监听main分支的push事件,在ubuntu-latest环境中安装Python 3.11,安装依赖后运行pytest。
关键完整代码
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [ main ]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run tests
run: pytest
若项目尚未包含测试文件,可在根目录添加最小验证用例:
# test_sample.py
def test_addition():
assert 1 + 1 == 2
运行与验证
- 将上述
ci.yml提交并推送到GitHub仓库的main分支:
git add .github/workflows/ci.yml
git commit -m "Add minimal CI workflow"
git push origin main
- 在GitHub仓库页面点击Actions标签,应看到名为
CI的工作流正在运行或已完成。 - 点击该工作流进入详情,展开
build-and-test任务,观察各步骤状态。
通过判定标准
- 工作流运行结束后,
Set up Python、Install dependencies、Run tests三个步骤均显示绿色勾选状态。 Run tests步骤的日志中不包含FAILED或ERROR字样,且最后一行显示类似1 passed的汇总信息。- 若测试失败,工作流整体显示红色
X,此时应检查Run tests日志中的失败详情并修正代码后重新推送。
常见问题
- 工作流未触发:确认
ci.yml文件路径为.github/workflows/目录下,且推送的是main分支。 - 依赖安装失败:检查
requirements.txt中的包名与版本是否存在,必要时在本地先执行pip install -r requirements.txt验证。 - pytest未找到测试:确保测试文件以
test_*.py或*_test.py命名,且位于仓库根目录或tests/目录下。