gh-1436: Fix incorrectly rejecting trailing comma after **rest (#1438)
#1503
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |