如何在多个版本上使用 Poetry 配置 GitHub Actions CI for Python?
了解如何使用 Poetry 为您的 Python 项目设置强大的 GitHub Actions CI 管道,跨多个 Python 版本进行测试以确保兼容性和可靠性。
持续集成(CI)是任何现代软件开发工作流程的关键部分。如果您使用 Poetry 管理依赖项和环境,本指南将帮助您为跨多个 Python 版本的 Python 项目配置强大的 GitHub Actions CI 管道。对于实际示例,您可以参考此 GitHub 存储库中的实际代码:jdevto/python-poetry-hello。 ?
为什么选择 Python 项目的 Poetry? ?
Poetry 简化了 Python 依赖管理和打包。它提供:
- 用于依赖项和项目元数据的清晰 pyproject.toml 文件。
- 虚拟环境管理系统。
- 构建、发布和管理依赖项的命令。
在多个版本上使用 Poetry 为 Python 配置 GitHub Actions
下面是一个完整的 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
工作流程中的关键步骤
1. 结账码
actions/checkout@v4 操作从存储库中获取您的代码,以便可以在后续步骤中使用它。
2. 设置Python
actions/setup-python@v4 操作使用矩阵策略安装指定的 Python 版本,使测试能够在多个 Python 版本上运行。
3. 安装诗歌
该脚本使用官方安装方法安装最新版本的 Poetry,并确保将其添加到 PATH 中。
4. 安装依赖项
poetry install --with dev 安装项目的所有依赖项,包括开发依赖项。
5. 设置 PYTHONPATH
PYTHONPATH 环境变量配置为包含 src 目录,以便在测试期间启用正确的模块导入。
6. 运行测试
poetry run pytest 运行项目中定义的测试,并通过 --cov=src --cov-report=term-missing 启用覆盖率报告。
增强功能
1. 添加依赖缓存
为了加快工作流程,您可以缓存 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中文网其他相关文章!

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

Python3.6环境下加载Pickle文件报错:ModuleNotFoundError:Nomodulenamed...

如何解决jieba分词在景区评论分析中的问题?当我们在进行景区评论分析时,往往会使用jieba分词工具来处理文�...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Dreamweaver Mac版
视觉化网页开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。