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. ?
Poetry vereinfacht die Verwaltung und Verpackung von Python-Abhängigkeiten. Es bietet:
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
Die Aktion „actions/checkout@v4“ ruft Ihren Code aus dem Repository ab, damit er in nachfolgenden Schritten verwendet werden kann.
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.
Das Skript installiert die neueste Version von Poetry mithilfe seiner offiziellen Installationsmethode und stellt sicher, dass sie zum PATH hinzugefügt wird.
poetry install – with dev installiert alle Abhängigkeiten des Projekts, einschließlich Entwicklungsabhängigkeiten.
Die Umgebungsvariable PYTHONPATH ist so konfiguriert, dass sie das src-Verzeichnis einschließt, wodurch ordnungsgemäße Modulimporte während des Tests ermöglicht werden.
poetry run pytest führt die in Ihrem Projekt definierten Tests aus, wobei die Abdeckungsberichterstattung über --cov=src --cov-report=term-missing aktiviert ist.
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
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.
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!