Bump pylint from 2.14.5 to 3.0.0 #273
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 | |
on: | |
push: | |
branches: [dev, beta, release] | |
pull_request: | |
permissions: | |
contents: read | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
ci: | |
name: ${{ matrix.name }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- id: ci-custom | |
name: Run script/ci-custom | |
- id: lint-python | |
name: Run script/lint-python | |
- id: test | |
file: tests/test1.yaml | |
name: Test tests/test1.yaml | |
pio_cache_key: test1 | |
- id: test | |
file: tests/test2.yaml | |
name: Test tests/test2.yaml | |
pio_cache_key: test2 | |
- id: test | |
file: tests/test3.yaml | |
name: Test tests/test3.yaml | |
pio_cache_key: test3 | |
- id: test | |
file: tests/test4.yaml | |
name: Test tests/test4.yaml | |
pio_cache_key: test4 | |
- id: test | |
file: tests/test5.yaml | |
name: Test tests/test5.yaml | |
pio_cache_key: test5 | |
- id: pytest | |
name: Run pytest | |
- id: clang-format | |
name: Run script/clang-format | |
- id: clang-tidy | |
name: Run script/clang-tidy for ESP8266 | |
options: --environment esp8266-arduino-tidy --grep USE_ESP8266 | |
pio_cache_key: tidyesp8266 | |
- id: clang-tidy | |
name: Run script/clang-tidy for ESP32 Arduino 1/4 | |
options: --environment esp32-arduino-tidy --split-num 4 --split-at 1 | |
pio_cache_key: tidyesp32 | |
- id: clang-tidy | |
name: Run script/clang-tidy for ESP32 Arduino 2/4 | |
options: --environment esp32-arduino-tidy --split-num 4 --split-at 2 | |
pio_cache_key: tidyesp32 | |
- id: clang-tidy | |
name: Run script/clang-tidy for ESP32 Arduino 3/4 | |
options: --environment esp32-arduino-tidy --split-num 4 --split-at 3 | |
pio_cache_key: tidyesp32 | |
- id: clang-tidy | |
name: Run script/clang-tidy for ESP32 Arduino 4/4 | |
options: --environment esp32-arduino-tidy --split-num 4 --split-at 4 | |
pio_cache_key: tidyesp32 | |
- id: clang-tidy | |
name: Run script/clang-tidy for ESP32 IDF | |
options: --environment esp32-idf-tidy --grep USE_ESP_IDF | |
pio_cache_key: tidyesp32-idf | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
id: python | |
with: | |
python-version: '3.8' | |
- name: Cache virtualenv | |
uses: actions/cache@v3 | |
with: | |
path: .venv | |
key: venv-${{ steps.python.outputs.python-version }}-${{ hashFiles('requirements*.txt') }} | |
restore-keys: | | |
venv-${{ steps.python.outputs.python-version }}- | |
- name: Set up virtualenv | |
run: | | |
python -m venv .venv | |
source .venv/bin/activate | |
pip install -U pip | |
pip install -r requirements.txt -r requirements_optional.txt -r requirements_test.txt | |
pip install -e . | |
echo "$GITHUB_WORKSPACE/.venv/bin" >> $GITHUB_PATH | |
echo "VIRTUAL_ENV=$GITHUB_WORKSPACE/.venv" >> $GITHUB_ENV | |
# Use per check platformio cache because checks use different parts | |
- name: Cache platformio | |
uses: actions/cache@v3 | |
with: | |
path: ~/.platformio | |
key: platformio-${{ matrix.pio_cache_key }}-${{ hashFiles('platformio.ini') }} | |
if: matrix.id == 'test' || matrix.id == 'clang-tidy' | |
- name: Install clang tools | |
run: | | |
sudo apt-get install \ | |
clang-format-11 \ | |
clang-tidy-11 | |
if: matrix.id == 'clang-tidy' || matrix.id == 'clang-format' | |
- name: Register problem matchers | |
run: | | |
echo "::add-matcher::.github/workflows/matchers/ci-custom.json" | |
echo "::add-matcher::.github/workflows/matchers/lint-python.json" | |
echo "::add-matcher::.github/workflows/matchers/python.json" | |
echo "::add-matcher::.github/workflows/matchers/pytest.json" | |
echo "::add-matcher::.github/workflows/matchers/gcc.json" | |
echo "::add-matcher::.github/workflows/matchers/clang-tidy.json" | |
- name: Lint Custom | |
run: | | |
script/ci-custom.py | |
script/build_codeowners.py --check | |
if: matrix.id == 'ci-custom' | |
- name: Lint Python | |
run: script/lint-python -a | |
if: matrix.id == 'lint-python' | |
- run: esphome compile ${{ matrix.file }} | |
if: matrix.id == 'test' | |
env: | |
# Also cache libdeps, store them in a ~/.platformio subfolder | |
PLATFORMIO_LIBDEPS_DIR: ~/.platformio/libdeps | |
- name: Run pytest | |
run: | | |
pytest -vv --tb=native tests | |
if: matrix.id == 'pytest' | |
# Also run git-diff-index so that the step is marked as failed on formatting errors, | |
# since clang-format doesn't do anything but change files if -i is passed. | |
- name: Run clang-format | |
run: | | |
script/clang-format -i | |
git diff-index --quiet HEAD -- | |
if: matrix.id == 'clang-format' | |
- name: Run clang-tidy | |
run: | | |
script/clang-tidy --all-headers --fix ${{ matrix.options }} | |
if: matrix.id == 'clang-tidy' | |
env: | |
# Also cache libdeps, store them in a ~/.platformio subfolder | |
PLATFORMIO_LIBDEPS_DIR: ~/.platformio/libdeps | |
- name: Suggested changes | |
run: script/ci-suggest-changes | |
if: always() && (matrix.id == 'clang-tidy' || matrix.id == 'clang-format' || matrix.id == 'lint-python') |