diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 6eeeb32..a87f95c 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -26,7 +26,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install ruff mypy pydantic vulture radon + pip install ruff mypy pydantic vulture radon bandit openenv-core pip install -e ".[dev,demo]" - name: Lint and Format with Ruff @@ -38,6 +38,10 @@ jobs: run: | mypy . + - name: Static Analysis with Bandit + run: | + bandit -r . -c pyproject.toml + - name: Dead Code Detection with Vulture run: | vulture . --min-confidence 80 --exclude .venv,venv,.cursor,web/node_modules @@ -47,9 +51,13 @@ jobs: radon cc . -a -nc radon mi . -nc + - name: OpenEnv validation + run: | + openenv validate . + - name: Pytest validation run: | - python -m pytest tests/ -q --tb=line + PYTHONPATH=. python -m pytest tests/ -q --tb=line frontend-quality: runs-on: ubuntu-latest @@ -87,7 +95,7 @@ jobs: node-version: '24' - name: Install jscpd - run: npm install -g jscpd + run: npm install -g jscpd@4.0.0 - name: Check for duplicate code - run: jscpd . --ignore "**/*.json,**/*.md,**/*.yaml,**/*.yml,**/package-lock.json,**/node_modules/**,**/venv/**,**/.venv/**" --threshold 5 + run: jscpd . --ignore "**/*.json,**/*.md,**/*.yaml,**/*.yml,**/package-lock.json,**/node_modules/**,**/venv/**,**/.venv/**,**/dist/**,**/build/**" --threshold 5