Skip to content

Commit

Permalink
Attempt to fix weird mypy failures on ignored files. (matrix-org#15409)
Browse files Browse the repository at this point in the history
By inlining the typechecking job from backend-meta.

This seems to resolve odd errors (maybe due to caching?)
to have been seen on Dependabot PRs.
  • Loading branch information
David Robertson authored and realtyem committed Apr 12, 2023
1 parent 521079a commit e37dd56
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 3 deletions.
57 changes: 54 additions & 3 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,59 @@ jobs:
- run: .ci/scripts/check_lockfile.py

lint:
uses: "matrix-org/backend-meta/.github/workflows/python-poetry-ci.yml@v2"
with:
typechecking-extras: "all"
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Setup Poetry
uses: matrix-org/setup-python-poetry@v1
with:
install-project: "false"

- name: Import order (isort)
run: poetry run isort --check --diff .

- name: Code style (black)
run: poetry run black --check --diff .

- name: Semantic checks (ruff)
# --quiet suppresses the update check.
run: poetry run ruff --quiet .

lint-mypy:
runs-on: ubuntu-latest
name: Typechecking
steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Setup Poetry
uses: matrix-org/setup-python-poetry@v1
with:
# We want to make use of type hints in optional dependencies too.
extras: all
# We have seen odd mypy failures that were resolved when we started
# installing the project again:
# https://github.com/matrix-org/synapse/pull/15376#issuecomment-1498983775
# To make CI green, err towards caution and install the project.
install-project: "true"

- name: Install Rust
uses: dtolnay/[email protected]
- uses: Swatinem/rust-cache@v2

# NB: I have two concerns with this action:
# 1. We occasionally see odd mypy problems that aren't reproducible
# locally with clean caches. I suspect some dodgy caching behaviour.
# 2. The action uses GHA machinery that's deprecated
# (https://github.com/AustinScola/mypy-cache-github-action/issues/277)
# It may be simpler to use actions/cache ourselves to restore .mypy_cache.
- name: Restore/persist mypy's cache
uses: AustinScola/mypy-cache-github-action@df56268388422ee282636ee2c7a9cc55ec644a41

- name: Run mypy
run: poetry run mypy

lint-crlf:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -165,6 +215,7 @@ jobs:
if: ${{ !cancelled() }} # Run this even if prior jobs were skipped
needs:
- lint
- lint-mypy
- lint-crlf
- lint-newsfile
- lint-pydantic
Expand Down
1 change: 1 addition & 0 deletions changelog.d/15409.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Explicitly install Synapse during typechecking in CI.

0 comments on commit e37dd56

Please sign in to comment.