了解如何使用 Poetry 为您的 Python 项目设置强大的 GitHub Actions CI 管道,跨多个 Python 版本进行测试以确保兼容性和可靠性。
持续集成(CI)是任何现代软件开发工作流程的关键部分。如果您使用 Poetry 管理依赖项和环境,本指南将帮助您为跨多个 Python 版本的 Python 项目配置强大的 GitHub Actions CI 管道。对于实际示例,您可以参考此 GitHub 存储库中的实际代码:jdevto/python-poetry-hello。 ?
Poetry 简化了 Python 依赖管理和打包。它提供:
下面是一个完整的 GitHub Actions 工作流程配置,用于在 Python 版本 3.9 到 3.13 中使用 Poetry 自动化 CI 管道。此示例包括三种类型的触发器:推送到主分支、拉取请求以及计划的每日 cron 作业。您可以调整这些触发器以满足您自己的要求。
name: ci on: push: branches: - main pull_request: schedule: - cron: 0 12 * * * workflow_dispatch: jobs: test: runs-on: ubuntu-latest strategy: matrix: python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] fail-fast: false steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install Poetry run: | curl -sSL https://install.python-poetry.org | python3 - echo "PATH=$HOME/.local/bin:$PATH" >> $GITHUB_ENV - name: Install dependencies with Poetry run: | cd hello-world poetry install --with dev - name: Set PYTHONPATH to include the source directory run: echo "PYTHONPATH=$PWD/hello-world" >> $GITHUB_ENV - name: Run tests run: | cd hello-world poetry run pytest --cov=hello-world --cov-report=term-missing
actions/checkout@v4 操作从存储库中获取您的代码,以便可以在后续步骤中使用它。
actions/setup-python@v4 操作使用矩阵策略安装指定的 Python 版本,使测试能够在多个 Python 版本上运行。
该脚本使用官方安装方法安装最新版本的 Poetry,并确保将其添加到 PATH 中。
poetry install --with dev 安装项目的所有依赖项,包括开发依赖项。
PYTHONPATH 环境变量配置为包含 src 目录,以便在测试期间启用正确的模块导入。
poetry run pytest 运行项目中定义的测试,并通过 --cov=src --cov-report=term-missing 启用覆盖率报告。
为了加快工作流程,您可以缓存 Poetry 依赖项:
name: ci on: push: branches: - main pull_request: schedule: - cron: 0 12 * * * workflow_dispatch: jobs: test: runs-on: ubuntu-latest strategy: matrix: python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] fail-fast: false steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install Poetry run: | curl -sSL https://install.python-poetry.org | python3 - echo "PATH=$HOME/.local/bin:$PATH" >> $GITHUB_ENV - name: Install dependencies with Poetry run: | cd hello-world poetry install --with dev - name: Set PYTHONPATH to include the source directory run: echo "PYTHONPATH=$PWD/hello-world" >> $GITHUB_ENV - name: Run tests run: | cd hello-world poetry run pytest --cov=hello-world --cov-report=term-missing
在安装依赖项之前添加此步骤,以便在没有任何更改的情况下跳过重新安装依赖项。
通过配置此 GitHub Actions 工作流程,您可以跨多个 Python 版本自动进行测试,并确保使用 Poetry 的 Python 项目始终处于最佳状态。此设置包括安装依赖项、运行测试、甚至缓存依赖项以加快构建速度的步骤。 ?
如果您有任何疑问或建议,请随时分享! ?如需更多灵感和工作示例,请访问 GitHub 存储库:jdevto/python-poetry-hello。
以上是如何在多个版本上使用 Poetry 配置适用于 Python 的 GitHub Actions CI的详细内容。更多信息请关注PHP中文网其他相关文章!