ホームページ > バックエンド開発 > Python チュートリアル > 複数のバージョンで Poetry を使用して Python 用の GitHub Actions CI を構成する方法

複数のバージョンで Poetry を使用して Python 用の GitHub Actions CI を構成する方法

Linda Hamilton
リリース: 2025-01-06 18:36:48
オリジナル
523 人が閲覧しました

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

複数のバージョンで Poetry を使用して Python 用の GitHub Actions CI を構成する方法

Poetry を使用して Python プロジェクト用の堅牢な GitHub Actions CI パイプラインをセットアップし、複数の Python バージョン間でテストして互換性と信頼性を確保する方法を学びます。

継続的インテグレーション (CI) は、最新のソフトウェア開発ワークフローの重要な部分です。 Poetry を使用して依存関係と環境を管理している場合、このガイドは、複数の Python バージョンにわたって Python プロジェクトの堅牢な GitHub Actions CI パイプラインを構成するのに役立ちます。実際の例については、GitHub リポジトリ jdevto/python-poetry-hello にある実際のコードを参照してください。 ?


なぜ Python プロジェクトに詩を使うのか? ?

Poetry は、Python の依存関係の管理とパッケージ化を簡素化します。それは以下を提供します:

  • 依存関係とプロジェクトのメタデータ用の明確な pyproject.toml ファイル。
  • 仮想環境管理システム。
  • 依存関係を構築、公開、管理するためのコマンド。

複数のバージョンで Poetry を使用した Python 用の GitHub アクションの構成

以下は、Python バージョン 3.9 から 3.13 にわたる Poetry を使用して CI パイプラインを自動化するための完全な GitHub Actions ワークフロー構成です。この例には、3 種類のトリガーが含まれています: メイン ブランチへのプッシュ時、プル リクエスト時、およびスケジュールされた毎日の 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート