Heim > Backend-Entwicklung > Python-Tutorial > So konfigurieren Sie GitHub Actions CI für Python mithilfe von Poetry in mehreren Versionen

So konfigurieren Sie GitHub Actions CI für Python mithilfe von Poetry in mehreren Versionen

Linda Hamilton
Freigeben: 2025-01-06 18:36:48
Original
482 Leute haben es durchsucht

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

Wie konfiguriere ich GitHub Actions CI für Python mit Poetry in mehreren Versionen?

Erfahren Sie, wie Sie mit Poetry eine robuste GitHub Actions CI-Pipeline für Ihr Python-Projekt einrichten und mehrere Python-Versionen testen, um Kompatibilität und Zuverlässigkeit sicherzustellen.

Continuous Integration (CI) ist ein wichtiger Bestandteil jedes modernen Softwareentwicklungsworkflows. Wenn Sie Abhängigkeiten und Umgebungen mit Poetry verwalten, hilft Ihnen dieser Leitfaden bei der Konfiguration einer robusten GitHub Actions CI-Pipeline für Ihr Python-Projekt über mehrere Python-Versionen hinweg. Ein praktisches Beispiel finden Sie im tatsächlichen Code in diesem GitHub-Repository: jdevto/python-poetry-hello. ?


Warum Poesie für Python-Projekte? ?

Poetry vereinfacht die Verwaltung und Verpackung von Python-Abhängigkeiten. Es bietet:

  • Eine übersichtliche pyproject.toml-Datei für Abhängigkeiten und Projektmetadaten.
  • Ein virtuelles Umgebungsmanagementsystem.
  • Befehle zum Erstellen, Veröffentlichen und Verwalten von Abhängigkeiten.

Konfigurieren von GitHub-Aktionen für Python mithilfe von Poetry in mehreren Versionen

Unten finden Sie eine vollständige GitHub Actions-Workflow-Konfiguration zur Automatisierung Ihrer CI-Pipeline mit Poetry in den Python-Versionen 3.9 bis 3.13. Dieses Beispiel umfasst drei Arten von Auslösern: beim Push an den Hauptzweig, bei Pull-Anfragen und bei einem geplanten täglichen Cron-Job. Sie können diese Auslöser an Ihre eigenen Anforderungen anpassen.

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
Nach dem Login kopieren
Nach dem Login kopieren

Wichtige Schritte im Workflow

1. Checkout-Code

Die Aktion „actions/checkout@v4“ ruft Ihren Code aus dem Repository ab, damit er in nachfolgenden Schritten verwendet werden kann.

2. Python einrichten

Die Aktion „actions/setup-python@v4“ installiert die angegebenen Python-Versionen mithilfe einer Matrixstrategie und ermöglicht so die Ausführung von Tests auf mehreren Python-Versionen.

3. Poetry installieren

Das Skript installiert die neueste Version von Poetry mithilfe seiner offiziellen Installationsmethode und stellt sicher, dass sie zum PATH hinzugefügt wird.

4. Abhängigkeiten installieren

poetry install – with dev installiert alle Abhängigkeiten des Projekts, einschließlich Entwicklungsabhängigkeiten.

5. PYTHONPATH festlegen

Die Umgebungsvariable PYTHONPATH ist so konfiguriert, dass sie das src-Verzeichnis einschließt, wodurch ordnungsgemäße Modulimporte während des Tests ermöglicht werden.

6. Tests durchführen

poetry run pytest führt die in Ihrem Projekt definierten Tests aus, wobei die Abdeckungsberichterstattung über --cov=src --cov-report=term-missing aktiviert ist.


Verbesserungen

1. Caching für Abhängigkeiten hinzufügen

Um Ihren Arbeitsablauf zu beschleunigen, können Sie Poetry-Abhängigkeiten zwischenspeichern:

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
Nach dem Login kopieren
Nach dem Login kopieren

Fügen Sie diesen Schritt vor der Installation von Abhängigkeiten hinzu, um die Neuinstallation von Abhängigkeiten zu überspringen, wenn sich nichts geändert hat.


Abschluss

Durch die Konfiguration dieses GitHub Actions-Workflows können Sie Tests über mehrere Python-Versionen hinweg automatisieren und sicherstellen, dass Ihr Python-Projekt mit Poetry immer in Topform ist. Dieses Setup umfasst Schritte zum Installieren von Abhängigkeiten, zum Ausführen von Tests und sogar zum Zwischenspeichern von Abhängigkeiten für schnellere Builds. ?

Wenn Sie Fragen oder Anregungen haben, können Sie diese gerne teilen! ? Weitere Inspiration und ein funktionierendes Beispiel finden Sie im GitHub-Repository: jdevto/python-poetry-hello.

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie GitHub Actions CI für Python mithilfe von Poetry in mehreren Versionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage