Fix PLE1205 #366
Workflow file for this run
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.12" | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
ruff: | |
name: Ruff | |
runs-on: ubuntu-latest | |
steps: | |
- name: ⤵️ Check out code from GitHub | |
uses: actions/[email protected] | |
- name: 🏗 Set up Poetry | |
run: pipx install poetry | |
- name: 🏗 Set up Python ${{ env.DEFAULT_PYTHON }} | |
id: python | |
uses: actions/[email protected] | |
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 . | |
pytest: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.10", "3.11", "3.12"] | |
pydantic-version: ["1", "2"] | |
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/[email protected] | |
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: Install specific pydantic version | |
run: poetry add pydantic@^${{ matrix.pydantic-version }} | |
- 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 |