mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-04 18:58:26 +00:00
96 lines
2.8 KiB
YAML
96 lines
2.8 KiB
YAML
name: Run mypy_primer
|
|
|
|
permissions: {}
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- "crates/ty*/**"
|
|
- "crates/ruff_db"
|
|
- "crates/ruff_python_ast"
|
|
- "crates/ruff_python_parser"
|
|
- ".github/workflows/mypy_primer.yaml"
|
|
- ".github/workflows/mypy_primer_comment.yaml"
|
|
|
|
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
|
|
RUST_BACKTRACE: 1
|
|
|
|
jobs:
|
|
mypy_primer:
|
|
name: Run mypy_primer
|
|
runs-on: depot-ubuntu-22.04-32
|
|
timeout-minutes: 20
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
with:
|
|
path: ruff
|
|
fetch-depth: 0
|
|
persist-credentials: false
|
|
|
|
- name: Install the latest version of uv
|
|
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
|
|
|
|
- uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8
|
|
with:
|
|
workspaces: "ruff"
|
|
|
|
- name: Install Rust toolchain
|
|
run: rustup show
|
|
|
|
- name: Run mypy_primer
|
|
shell: bash
|
|
run: |
|
|
cd ruff
|
|
|
|
PRIMER_SELECTOR="$(paste -s -d'|' crates/ty_python_semantic/resources/primer/good.txt)"
|
|
|
|
echo "new commit"
|
|
git rev-list --format=%s --max-count=1 "$GITHUB_SHA"
|
|
|
|
MERGE_BASE="$(git merge-base "$GITHUB_SHA" "origin/$GITHUB_BASE_REF")"
|
|
git checkout -b base_commit "$MERGE_BASE"
|
|
echo "base commit"
|
|
git rev-list --format=%s --max-count=1 base_commit
|
|
|
|
cd ..
|
|
|
|
echo "Project selector: $PRIMER_SELECTOR"
|
|
# Allow the exit code to be 0 or 1, only fail for actual mypy_primer crashes/bugs
|
|
uvx \
|
|
--from="git+https://github.com/hauntsaninja/mypy_primer@4b15cf3b07db69db67bbfaebfffb2a8a28040933" \
|
|
mypy_primer \
|
|
--repo ruff \
|
|
--type-checker ty \
|
|
--old base_commit \
|
|
--new "$GITHUB_SHA" \
|
|
--project-selector "/($PRIMER_SELECTOR)\$" \
|
|
--output concise \
|
|
--debug > mypy_primer.diff || [ $? -eq 1 ]
|
|
|
|
# Output diff with ANSI color codes
|
|
cat mypy_primer.diff
|
|
|
|
# Remove ANSI color codes before uploading
|
|
sed -ie 's/\x1b\[[0-9;]*m//g' mypy_primer.diff
|
|
|
|
echo ${{ github.event.number }} > pr-number
|
|
|
|
- name: Upload diff
|
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
with:
|
|
name: mypy_primer_diff
|
|
path: mypy_primer.diff
|
|
|
|
- name: Upload pr-number
|
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
with:
|
|
name: pr-number
|
|
path: pr-number
|