首頁 > 後端開發 > Python教學 > 如何在多個版本上使用 Poetry 設定適用於 Python 的 GitHub Actions CI

如何在多個版本上使用 Poetry 設定適用於 Python 的 GitHub Actions CI

Linda Hamilton
發布: 2025-01-06 18:36:48
原創
481 人瀏覽過

How to Configure GitHub Actions CI for Python Using Poetry on Multiple Versions

如何在多個版本上使用 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中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板