mirror of
https://github.com/Instagram/LibCST.git
synced 2025-12-23 10:35:53 +00:00
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6 to 7. - [Release notes](https://github.com/astral-sh/setup-uv/releases) - [Commits](https://github.com/astral-sh/setup-uv/compare/v6...v7) --- updated-dependencies: - dependency-name: astral-sh/setup-uv dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
142 lines
3.7 KiB
YAML
142 lines
3.7 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [macos-latest, ubuntu-latest, windows-latest]
|
|
python-version:
|
|
- "3.9"
|
|
- "3.10"
|
|
- "3.11"
|
|
- "3.12"
|
|
- "3.13"
|
|
- "3.13t"
|
|
- "3.14"
|
|
- "3.14t"
|
|
steps:
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v7
|
|
with:
|
|
version: "0.7.13"
|
|
python-version: ${{ matrix.python-version }}
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
persist-credentials: false
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- name: Build LibCST
|
|
run: uv sync --locked --dev
|
|
- name: Native Parser Tests
|
|
run: uv run poe test
|
|
- name: Coverage
|
|
run: uv run coverage report
|
|
|
|
# Run linters
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
persist-credentials: false
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v7
|
|
with:
|
|
version: "0.7.13"
|
|
python-version: "3.10"
|
|
- run: uv run poe lint
|
|
- run: uv run poe fixtures
|
|
|
|
# Run pyre typechecker
|
|
typecheck:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
persist-credentials: false
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v7
|
|
with:
|
|
version: "0.7.13"
|
|
python-version: "3.10"
|
|
- run: uv run poe typecheck
|
|
|
|
# Build the docs
|
|
docs:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
persist-credentials: false
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v7
|
|
with:
|
|
version: "0.7.13"
|
|
python-version: "3.10"
|
|
- uses: ts-graphviz/setup-graphviz@v2
|
|
- run: uv run --group docs poe docs
|
|
- name: Archive Docs
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: sphinx-docs
|
|
path: docs/build
|
|
|
|
# Test rust parts
|
|
native:
|
|
name: Rust unit tests
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
python-version: ["3.10", "3.13t"]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
persist-credentials: false
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
components: rustfmt, clippy
|
|
- uses: actions/setup-python@v6
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: test
|
|
run: cargo test --manifest-path=native/Cargo.toml --release
|
|
- name: test without python
|
|
if: matrix.os == 'ubuntu-latest'
|
|
run: cargo test --manifest-path=native/Cargo.toml --release --no-default-features
|
|
- name: clippy
|
|
run: cargo clippy --manifest-path=native/Cargo.toml --all-targets --all-features
|
|
- name: compile-benchmarks
|
|
run: cargo bench --manifest-path=native/Cargo.toml --no-run
|
|
|
|
rustfmt:
|
|
name: Rustfmt
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
persist-credentials: false
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
components: rustfmt
|
|
- run: rustup component add rustfmt
|
|
- name: format
|
|
run: cargo fmt --all --manifest-path=native/Cargo.toml -- --check
|
|
build:
|
|
# only trigger here for pull requests - regular pushes are handled in pypi_upload
|
|
if: ${{ github.event_name == 'pull_request' }}
|
|
uses: Instagram/LibCST/.github/workflows/build.yml@main
|