Bump mypy from 1.13.0 to 1.14.0 (#389) #694
This file contains 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 | |
env: | |
venv-path: '.venv' | |
DEFAULT_PYTHON: "3.13" | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
codespell: | |
name: codespell | |
runs-on: ubuntu-latest | |
steps: | |
- name: ⤵️ Check out code from GitHub | |
uses: actions/checkout@v4.1.1 | |
- name: 🏗 Set up Poetry | |
run: pipx install poetry | |
- name: 🏗 Set up Python ${{ env.DEFAULT_PYTHON }} | |
id: python | |
uses: actions/setup-python@v5.0.0 | |
with: | |
python-version: ${{ env.DEFAULT_PYTHON }} | |
cache: "poetry" | |
- name: 🏗 Install workflow dependencies | |
run: | | |
poetry config virtualenvs.create true | |
poetry config virtualenvs.in-project true | |
- name: 🏗 Install Python dependencies | |
run: poetry install --no-interaction | |
- name: 🚀 Check code for common misspellings | |
run: poetry run pre-commit run codespell --all-files | |
ruff: | |
name: Ruff | |
runs-on: ubuntu-latest | |
steps: | |
- name: ⤵️ Check out code from GitHub | |
uses: actions/checkout@v4.1.1 | |
- name: 🏗 Set up Poetry | |
run: pipx install poetry | |
- name: 🏗 Set up Python ${{ env.DEFAULT_PYTHON }} | |
id: python | |
uses: actions/setup-python@v5.0.0 | |
with: | |
python-version: ${{ env.DEFAULT_PYTHON }} | |
cache: "poetry" | |
- name: 🏗 Install workflow dependencies | |
run: | | |
poetry config virtualenvs.create true | |
poetry config virtualenvs.in-project true | |
- name: 🏗 Install Python dependencies | |
run: poetry install --no-interaction | |
- name: 🚀 Run ruff linter | |
run: poetry run ruff check --output-format=github . | |
- name: 🚀 Run ruff formatter | |
run: poetry run ruff format --check . | |
pre-commit-hooks: | |
name: pre-commit-hooks | |
runs-on: ubuntu-latest | |
steps: | |
- name: ⤵️ Check out code from GitHub | |
uses: actions/checkout@v4.1.1 | |
- name: 🏗 Set up Poetry | |
run: pipx install poetry | |
- name: 🏗 Set up Python ${{ env.DEFAULT_PYTHON }} | |
id: python | |
uses: actions/setup-python@v5.0.0 | |
with: | |
python-version: ${{ env.DEFAULT_PYTHON }} | |
cache: "poetry" | |
- name: 🏗 Install workflow dependencies | |
run: | | |
poetry config virtualenvs.create true | |
poetry config virtualenvs.in-project true | |
- name: 🏗 Install Python dependencies | |
run: poetry install --no-interaction | |
- name: 🚀 Check Python AST | |
run: poetry run pre-commit run check-ast --all-files | |
- name: 🚀 Check for case conflicts | |
run: poetry run pre-commit run check-case-conflict --all-files | |
- name: 🚀 Check docstring is first | |
run: poetry run pre-commit run check-docstring-first --all-files | |
- name: 🚀 Check that executables have shebangs | |
run: poetry run pre-commit run check-executables-have-shebangs --all-files | |
- name: 🚀 Check JSON files | |
run: poetry run pre-commit run check-json --all-files | |
- name: 🚀 Check for merge conflicts | |
run: poetry run pre-commit run check-merge-conflict --all-files | |
- name: 🚀 Check for broken symlinks | |
run: poetry run pre-commit run check-symlinks --all-files | |
- name: 🚀 Check TOML files | |
run: poetry run pre-commit run check-toml --all-files | |
- name: 🚀 Check XML files | |
run: poetry run pre-commit run check-xml --all-files | |
- name: 🚀 Check YAML files | |
run: poetry run pre-commit run check-yaml --all-files | |
- name: 🚀 Check End of Files | |
run: poetry run pre-commit run end-of-file-fixer --all-files | |
- name: 🚀 Trim Trailing Whitespace | |
run: poetry run pre-commit run trailing-whitespace --all-files | |
pytest: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.11", "3.12", "3.13"] | |
fail-fast: false | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
uses: snok/install-poetry@v1.4.1 | |
with: | |
virtualenvs-create: true | |
virtualenvs-in-project: true | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v4 | |
with: | |
path: .venv | |
key: venv-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Install dependencies | |
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' | |
run: poetry install --no-interaction --no-root | |
- name: Install library | |
run: poetry install --no-interaction | |
- name: Start Mosquitto | |
uses: namoshek/mosquitto-github-action@v1 | |
with: | |
version: '2.0.18' | |
ports: '8883:8883' | |
certificates: ${{ github.workspace }}/.github/workflows/mosquitto/tls-certificates | |
config: ${{ github.workspace }}/.github/workflows/mosquitto/mosquitto.conf | |
password-file: ${{ github.workspace}}/.github/workflows/mosquitto/mosquitto.passwd | |
container-name: 'mqtt' | |
- name: Run Pytest | |
run: | | |
source .venv/bin/activate | |
pytest --verbose |