Poetry を使用して Python プロジェクト用の堅牢な GitHub Actions CI パイプラインをセットアップし、複数の Python バージョン間でテストして互換性と信頼性を確保する方法を学びます。
継続的インテグレーション (CI) は、最新のソフトウェア開発ワークフローの重要な部分です。 Poetry を使用して依存関係と環境を管理している場合、このガイドは、複数の Python バージョンにわたって Python プロジェクトの堅牢な GitHub Actions CI パイプラインを構成するのに役立ちます。実際の例については、GitHub リポジトリ jdevto/python-poetry-hello にある実際のコードを参照してください。 ?
Poetry は、Python の依存関係の管理とパッケージ化を簡素化します。それは以下を提供します:
以下は、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
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 中国語 Web サイトの他の関連記事を参照してください。