Rumah > Artikel > pembangunan bahagian belakang > Percepatkan CI dengan uv ⚡
Kami boleh menggunakan uv untuk membuat linting dan ujian pada Tindakan GitHub sekitar 1.5 kali lebih pantas.
Apabila menggunakan pra-komit untuk linting:
name: Lint on: [push, pull_request, workflow_dispatch] env: FORCE_COLOR: 1 permissions: contents: read jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: persist-credentials: false - uses: actions/setup-python@v5 with: python-version: "3.x" cache: pip - uses: pre-commit/action@v3.0.1
Kami boleh menggantikan pra-komit/tindakan dengan tox-dev/action-pre-commit-uv:
- uses: actions/setup-python@v5 with: python-version: "3.x" - cache: pip - - uses: pre-commit/action@v3.0.1 + - uses: tox-dev/action-pre-commit-uv@v1
name: Lint on: [push, pull_request, workflow_dispatch] env: FORCE_COLOR: 1 permissions: contents: read jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: persist-credentials: false - uses: actions/setup-python@v5 with: python-version: "3.x" - uses: tox-dev/action-pre-commit-uv@v1
Ini bermakna uv akan mencipta persekitaran maya dan memasang pakej untuk pra-komit, yang lebih pantas untuk operasi benih awal apabila tiada cache.
Contohnya: python/blurb#32
Before | After | Times faster | |
---|---|---|---|
No cache | 60s | 37s | 1.62 |
With cache | 11s | 11s | 1.00 |
Apabila menguji dengan tox:
name: Test on: [push, pull_request, workflow_dispatch] permissions: contents: read env: FORCE_COLOR: 1 jobs: test: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 with: persist-credentials: false - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} allow-prereleases: true cache: pip - name: Install dependencies run: | python --version python -m pip install -U pip python -m pip install -U tox - name: Tox tests run: | tox -e py
Kita boleh menggantikan tox dengan tox-uv:
- name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} allow-prereleases: true - cache: pip - - name: Install dependencies - run: | - python --version - python -m pip install -U pip - python -m pip install -U tox + - name: Install uv + uses: hynek/setup-cached-uv@v2 - name: Tox tests run: | - tox -e py + uvx --with tox-uv tox -e py
name: Test on: [push, pull_request, workflow_dispatch] permissions: contents: read env: FORCE_COLOR: 1 jobs: test: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 with: persist-credentials: false - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} allow-prereleases: true - name: Install uv uses: hynek/setup-cached-uv@v2 - name: Tox tests run: | uvx --with tox-uv tox -e py
tox-uv ialah pemalam tox untuk menggantikan virtualenv dan pip dengan uv dalam persekitaran tox anda. Kami hanya perlu memasang uv dan menggunakan uvx untuk memasang tox-uv dan menjalankan tox, untuk pemasangan tox yang lebih pantas, persekitaran maya dan kebergantungan di dalamnya.
Contohnya: python/blurb#32
Before | After | Times faster | |
---|---|---|---|
No cache | 2m 0s | 1m 26s | 1.40 |
With cache | 1m 58s | 1m 22s | 1.44 |
Jalankan alat zizmor baharu untuk mencari isu keselamatan dalam Tindakan GitHub.
Foto pengepala: "Berbasikal jalan raya di Sukan Olimpik Helsinki 1952" oleh Olympia-Kuva Oy & Muzium Bandar Helsinki, Domain Awam.
Atas ialah kandungan terperinci Percepatkan CI dengan uv ⚡. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!