Rumah > pembangunan bahagian belakang > Tutorial Python > Cara Mengkonfigurasi Tindakan GitHub CI untuk Python Menggunakan Puisi pada Berbilang Versi

Cara Mengkonfigurasi Tindakan GitHub CI untuk Python Menggunakan Puisi pada Berbilang Versi

Linda Hamilton
Lepaskan: 2025-01-06 18:36:48
asal
523 orang telah melayarinya

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

Bagaimana untuk Mengkonfigurasi Tindakan GitHub CI untuk Python Menggunakan Puisi pada Berbilang Versi?

Ketahui cara menyediakan saluran paip CI GitHub Actions yang mantap untuk projek Python anda menggunakan Puisi, menguji merentas berbilang versi Python untuk memastikan keserasian dan kebolehpercayaan.

Integrasi Berterusan (CI) ialah bahagian penting dalam mana-mana aliran kerja pembangunan perisian moden. Jika anda menguruskan kebergantungan dan persekitaran dengan Puisi, panduan ini akan membantu anda mengkonfigurasi saluran paip CI GitHub Actions yang mantap untuk projek Python anda merentas berbilang versi Python. Untuk contoh praktikal, anda boleh merujuk kepada kod sebenar dalam repositori GitHub ini: jdevto/python-poetry-hello. ?


Mengapa Puisi untuk Projek Python? ?

Puisi memudahkan pengurusan dan pembungkusan pergantungan Python. Ia menyediakan:

  • Fail pyproject.toml yang jelas untuk kebergantungan dan metadata projek.
  • Sistem pengurusan persekitaran maya.
  • Perintah untuk membina, menerbitkan dan mengurus kebergantungan.

Mengkonfigurasi Tindakan GitHub untuk Python Menggunakan Puisi pada Berbilang Versi

Di bawah ialah konfigurasi aliran kerja GitHub Actions yang lengkap untuk mengautomasikan saluran paip CI anda dengan Puisi merentas Python versi 3.9 hingga 3.13. Contoh ini termasuk tiga jenis pencetus: semasa menolak ke cawangan utama, atas permintaan tarik dan pada tugas cron harian yang dijadualkan. Anda boleh melaraskan pencetus ini untuk memenuhi keperluan anda sendiri.

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
Salin selepas log masuk
Salin selepas log masuk

Langkah Utama dalam Aliran Kerja

1. Kod Daftar Keluar

Tindakan actions/checkout@v4 mengambil kod anda daripada repositori supaya ia boleh digunakan dalam langkah seterusnya.

2. Sediakan Python

Tindakan actions/setup-python@v4 memasang versi Python yang ditentukan menggunakan strategi matriks, membolehkan ujian dijalankan pada berbilang versi Python.

3. Pasang Puisi

Skrip memasang versi terbaharu Puisi menggunakan kaedah pemasangan rasminya dan memastikan ia ditambahkan pada PATH.

4. Pasang Ketergantungan

pemasangan puisi --dengan dev memasang semua kebergantungan projek, termasuk kebergantungan pembangunan.

5. Tetapkan PYTHONPATH

Pembolehubah persekitaran PYTHONPATH dikonfigurasikan untuk memasukkan direktori src, membolehkan import modul yang betul semasa ujian.

6. Jalankan Ujian

poetry run pytest menjalankan ujian yang ditakrifkan dalam projek anda, dengan pelaporan liputan didayakan melalui --cov=src --cov-report=term-missing.


Penambahbaikan

1. Tambah Caching untuk Ketergantungan

Untuk mempercepatkan aliran kerja anda, anda boleh cache kebergantungan Puisi:

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
Salin selepas log masuk
Salin selepas log masuk

Tambahkan langkah ini sebelum memasang kebergantungan untuk melangkau pemasangan semula kebergantungan jika tiada apa yang berubah.


Kesimpulan

Dengan mengkonfigurasi aliran kerja Tindakan GitHub ini, anda boleh mengautomasikan ujian merentas berbilang versi Python dan memastikan projek Python anda menggunakan Puisi sentiasa dalam keadaan terbaik. Persediaan ini termasuk langkah untuk memasang kebergantungan, menjalankan ujian dan juga kebergantungan cache untuk binaan yang lebih pantas. ?

Jika anda mempunyai sebarang soalan atau cadangan, sila kongsikan! ? Untuk mendapatkan lebih banyak inspirasi dan contoh yang berkesan, lawati repositori GitHub: jdevto/python-poetry-hello.

Atas ialah kandungan terperinci Cara Mengkonfigurasi Tindakan GitHub CI untuk Python Menggunakan Puisi pada Berbilang Versi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan