This repository has been archived by the owner on Oct 4, 2024. It is now read-only.
build: change tooling to match TR1X #133
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: Run code linters | |
on: | |
- push | |
- pull_request | |
jobs: | |
lint: | |
name: Run code linters | |
runs-on: ubuntu-latest | |
steps: | |
- name: 'Checkout code' | |
uses: actions/checkout@v2 | |
with: | |
path: . | |
fetch-depth: 0 | |
- name: Check JSON files validity | |
shell: python | |
run: | | |
import json | |
from pathlib import Path | |
errors = False | |
for path in Path('.').rglob('**/*.json'): | |
try: | |
json.loads(path.read_text()) | |
except json.JSONDecodeError as ex: | |
print(f'Malformed JSON in {path}: {ex}') | |
errors = True | |
if errors: | |
exit(1) | |
- name: Install dependencies | |
run: | | |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - | |
echo 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main' | sudo tee -a /etc/apt/sources.list | |
echo 'deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main' | sudo tee -a /etc/apt/sources.list | |
sudo apt update | |
sudo apt-get install -y clang-format-18 iwyu | |
sudo snap install --edge --classic just | |
sudo ln -s /usr/bin/clang-format-18 /usr/local/bin/clang-format | |
sudo apt-get install -y python3-pip | |
sudo python3 -m pip install pyjson5 pre-commit | |
- name: Check formatted code differences | |
run: | | |
just lint-format || /bin/true | |
git diff --exit-code || ( | |
clang-format --version | |
echo 'Please run `just lint` and commit the changes.' | |
exit 1 | |
) | |
- name: Check imports | |
run: | | |
git add -A | |
just lint-imports | |
git diff --exit-code || ( | |
include-what-you-use --version | |
echo 'Please run `just lint` and commit the changes.' | |
exit 1 | |
) |