File: checking.yaml

package info (click to toggle)
switchbot-api 2.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 316 kB
  • sloc: python: 656; makefile: 15
file content (164 lines) | stat: -rw-r--r-- 5,859 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
---
name: Checking

# yamllint disable-line rule:truthy
on:
  push:
    branches:
      - main
  pull_request:
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  DEFAULT_PYTHON: "3.11"

jobs:
  codespell:
    name: codespell
    runs-on: ubuntu-latest
    steps:
      - name: โคต๏ธ Check out code from GitHub
        uses: actions/checkout@v4.2.2
      - name: ๐Ÿ— Set up Poetry
        run: pipx install poetry
      - name: ๐Ÿ— Set up Python ${{ env.DEFAULT_PYTHON }}
        id: python
        uses: actions/setup-python@v5.3.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
  pre-commit-hooks:
    name: pre-commit-hooks
    runs-on: ubuntu-latest
    steps:
      - name: โคต๏ธ Check out code from GitHub
        uses: actions/checkout@v4.2.2
      - name: ๐Ÿ— Set up Poetry
        run: pipx install poetry
      - name: ๐Ÿ— Set up Python ${{ env.DEFAULT_PYTHON }}
        id: python
        uses: actions/setup-python@v5.3.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: ๐Ÿš€ Detect Private Keys
        run: poetry run pre-commit run detect-private-key --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
  mypy:
    name: mypy
    runs-on: ubuntu-latest
    steps:
      - name: โคต๏ธ Check out code from GitHub
        uses: actions/checkout@v4.2.2
      - name: ๐Ÿ— Set up Poetry
        run: pipx install poetry
      - name: ๐Ÿ— Set up Python ${{ env.DEFAULT_PYTHON }}
        id: python
        uses: actions/setup-python@v5.3.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 dependencies
        run: poetry install --no-interaction
      - name: ๐Ÿš€ Run mypy
        run: poetry run mypy switchbot_api tests
  linting:
    name: linting
    runs-on: ubuntu-latest
    steps:
      - name: โคต๏ธ Check out code from GitHub
        uses: actions/checkout@v4.2.2
      - name: ๐Ÿ— Set up Poetry
        run: pipx install poetry
      - name: ๐Ÿ— Set up Python ${{ env.DEFAULT_PYTHON }}
        id: python
        uses: actions/setup-python@v5.3.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 .
  pytest:
    name: Python ${{ matrix.python }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python: ["3.11", "3.12", "3.13"]
    steps:
      - name: โคต๏ธ Check out code from GitHub
        uses: actions/checkout@v4.2.2
      - name: ๐Ÿ— Set up Poetry
        run: pipx install poetry
      - name: ๐Ÿ— Set up Python ${{ matrix.python }}
        id: python
        uses: actions/setup-python@v5.3.0
        with:
          python-version: ${{ matrix.python }}
          cache: "poetry"
      - name: ๐Ÿ— Install workflow dependencies
        run: |
          poetry config virtualenvs.create true
          poetry config virtualenvs.in-project true
      - name: ๐Ÿ— Install dependencies
        run: poetry install --no-interaction
      - name: ๐Ÿš€ Run pytest
        run: poetry run pytest --cov vehicle tests
      - name: โฌ†๏ธ Upload coverage artifact
        uses: actions/upload-artifact@v4.5.0
        with:
          include-hidden-files: true
          name: coverage-${{ matrix.python }}
          path: .coverage