了解如何使用 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中文網其他相關文章!