Skip to content

Merge pull request #22 from hinxcode/contributions #21

Merge pull request #22 from hinxcode/contributions

Merge pull request #22 from hinxcode/contributions #21

Workflow file for this run

name: Code Quality
on:
pull_request:
branches: [ main ]
push:
branches: [ main ]
jobs:
python-lint:
name: Python Linting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install black isort flake8
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Check code formatting with black
run: black --check .
- name: Check import sorting with isort
run: isort --check-only .
- name: Lint with flake8
run: |
# Stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# Exit-zero treats all errors as warnings
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=88 --statistics
continue-on-error: true
python-tests:
name: Python Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest pytest-cov
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Run tests with pytest
run: |
if [ -d tests ]; then
pytest --maxfail=5 --disable-warnings -v
else
echo "No tests directory found - skipping tests"
fi
continue-on-error: true
frontend-lint:
name: Frontend Linting
runs-on: ubuntu-latest
strategy:
matrix:
frontend: [photographs, maps, documents]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
cache-dependency-path: src/frontend/${{ matrix.frontend }}/package-lock.json
- name: Install dependencies
working-directory: src/frontend/${{ matrix.frontend }}
run: npm ci
- name: Run ESLint
working-directory: src/frontend/${{ matrix.frontend }}
run: npm run lint
continue-on-error: true
dependency-review:
name: Dependency Review
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Dependency Review
uses: actions/dependency-review-action@v4
continue-on-error: true