chore: Improve code style checks #1119
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: Code Style | |
on: | |
push: | |
jobs: | |
# Flake 8 for basic code style checks | |
flake8: | |
name: Flake 8 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
cache: pip | |
cache-dependency-path: | | |
**/pyproject.toml | |
**/requirements*.txt | |
- name: Create build info | |
run: | | |
bash scripts/build-info.sh | |
- name: Install Flake8 (7.1.0) | |
run: | | |
python -m pip install --upgrade pip | |
pip install flake8==7.1.0 | |
- name: Install dependencies | |
run: | | |
ROOT=$(pwd) | |
for package in $(ls packages); do | |
echo "-------------------------------------------------" | |
echo "- $package" | |
echo "-------------------------------------------------" | |
cd "$ROOT/packages/$package" | |
pip install -r requirements.txt | |
make local-deps | |
echo "=================================================" | |
done | |
- name: Install package | |
run: | | |
for package in $(ls packages); do | |
echo "-------------------------------------------------" | |
echo "- $package" | |
echo "-------------------------------------------------" | |
pip install packages/$package | |
rm -rf packages/$package/build | |
echo "=================================================" | |
done | |
- name: Lint with flake8 | |
run: | | |
flake8 packages --count --select=E9,F63,F7,F82 --show-source --statistics | |
flake8 packages --count --max-complexity=12 --max-line-length=130 --statistics | |
# Typing checks with MyPy | |
typing: | |
name: Typing | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
cache: pip | |
cache-dependency-path: | | |
**/pyproject.toml | |
**/requirements*.txt | |
- name: Create build info | |
run: | | |
bash scripts/build-info.sh | |
- name: Install MyPy (1.11.2) | |
run: | | |
python -m pip install --upgrade pip | |
pip install mypy==1.11.2 | |
- name: Install dependencies | |
run: | | |
ROOT=$(pwd) | |
for package in $(ls packages); do | |
echo "-------------------------------------------------" | |
echo "- $package" | |
echo "-------------------------------------------------" | |
cd "$ROOT/packages/$package" | |
pip install -r requirements.txt | |
make local-deps | |
echo "=================================================" | |
done | |
- name: Install packages | |
run: | | |
for package in $(ls packages); do | |
echo "-------------------------------------------------" | |
echo "- $package" | |
echo "-------------------------------------------------" | |
pip install packages/$package | |
rm -rf packages/$package/build | |
echo "=================================================" | |
done | |
- name: Check typing with MyPy | |
run: | | |
mypy --install-types --ignore-missing-imports \ | |
--check-untyped-defs --non-interactive \ | |
packages/*/dsw | |
# Consistency of version tagging | |
version: | |
name: Version consts.py | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Check dsw-data-seeder | |
run: | | |
bash scripts/check-version.sh \ | |
packages/dsw-data-seeder/dsw/data_seeder/consts.py \ | |
packages/dsw-data-seeder/pyproject.toml | |
- name: Check dsw-document-worker | |
run: | | |
bash scripts/check-version.sh \ | |
packages/dsw-document-worker/dsw/document_worker/consts.py \ | |
packages/dsw-document-worker/pyproject.toml | |
- name: Check dsw-mailer | |
run: | | |
bash scripts/check-version.sh \ | |
packages/dsw-mailer/dsw/mailer/consts.py \ | |
packages/dsw-mailer/pyproject.toml | |
- name: Check dsw-tdk | |
run: | | |
bash scripts/check-version.sh \ | |
packages/dsw-tdk/dsw/tdk/consts.py \ | |
packages/dsw-tdk/pyproject.toml | |
# Pylint | |
pylint: | |
name: Pylint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
cache: pip | |
cache-dependency-path: | | |
**/pyproject.toml | |
**/requirements*.txt | |
- name: Create build info | |
run: | | |
bash scripts/build-info.sh | |
- name: Install PyLint (3.2.5) | |
run: | | |
python -m pip install --upgrade pip | |
pip install pylint==3.2.5 | |
- name: Install dependencies | |
run: | | |
ROOT=$(pwd) | |
for package in $(ls packages); do | |
echo "-------------------------------------------------" | |
echo "- $package" | |
echo "-------------------------------------------------" | |
cd "$ROOT/packages/$package" | |
pip install -r requirements.txt | |
make local-deps | |
echo "=================================================" | |
done | |
- name: Install packages | |
run: | | |
for package in $(ls packages); do | |
echo "-------------------------------------------------" | |
echo "- $package" | |
echo "-------------------------------------------------" | |
pip install packages/$package | |
rm -rf packages/$package/build | |
echo "=================================================" | |
done | |
- name: Lint with PyLint | |
run: | | |
pylint --rcfile=.pylintrc.ini packages/*/dsw |