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

运行与验证

  1. 将上述ci.yml提交并推送到GitHub仓库的main分支:
git add .github/workflows/ci.yml
git commit -m "Add minimal CI workflow"
git push origin main
  1. 在GitHub仓库页面点击Actions标签,应看到名为CI的工作流正在运行或已完成。
  2. 点击该工作流进入详情,展开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/目录下。