mirror of
https://github.com/astral-sh/uv
synced 2026-01-22 05:50:25 -05:00
Filter out source dists and wheels whose `requires-python` from the simple api is incompatible with the current python version. This change showed an important problem: When we use a fake python version for resolving, building source distributions breaks down because we can only build with versions we actually have. This change became surprisingly big. The tests now require python 3.7 to be installed, but changing that would mean an even bigger change. Fixes #388
68 lines
1.7 KiB
YAML
68 lines
1.7 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.pull_request.number || github.sha }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
CARGO_INCREMENTAL: 0
|
|
CARGO_NET_RETRY: 10
|
|
CARGO_TERM_COLOR: always
|
|
RUSTUP_MAX_RETRIES: 10
|
|
PYTHON_VERSION: "3.12"
|
|
|
|
jobs:
|
|
cargo-fmt:
|
|
name: "cargo fmt"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: "Install Rust toolchain"
|
|
run: rustup component add rustfmt
|
|
- name: "rustfmt"
|
|
run: cargo fmt --all --check
|
|
|
|
cargo-clippy:
|
|
name: "cargo clippy"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: "Install Rust toolchain"
|
|
run: |
|
|
rustup component add clippy
|
|
- uses: Swatinem/rust-cache@v2
|
|
- name: "Clippy"
|
|
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
|
|
|
|
cargo-test:
|
|
strategy:
|
|
matrix:
|
|
os: [ ubuntu-latest ]
|
|
runs-on: ${{ matrix.os }}
|
|
name: "cargo test | ${{ matrix.os }}"
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
# TODO(konstin): Mock the venv in the installer test so we don't need 3.8 anymore
|
|
- name: "Install Python"
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: |
|
|
3.8
|
|
${{ env.PYTHON_VERSION }}
|
|
- name: "Install Rust toolchain"
|
|
run: rustup show
|
|
- name: "Install cargo insta"
|
|
uses: taiki-e/install-action@v2
|
|
with:
|
|
tool: cargo-insta
|
|
- uses: Swatinem/rust-cache@v2
|
|
- name: "Tests (Ubuntu)"
|
|
if: ${{ matrix.os == 'ubuntu-latest' }}
|
|
run: cargo insta test --all --all-features --unreferenced reject
|