Skip to content

feat(types): normalized data model — primitives, entities, store, migrations, player view #19

feat(types): normalized data model — primitives, entities, store, migrations, player view

feat(types): normalized data model — primitives, entities, store, migrations, player view #19

Workflow file for this run

name: Lint & Type Check
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
lint:
name: ESLint & TypeScript Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run ESLint
run: npm run lint:strict
continue-on-error: false
- name: Run TypeScript type check
run: npm run type-check
continue-on-error: false
- name: Check code formatting
run: npm run format:check
continue-on-error: false
- name: Generate ESLint report
if: always()
run: |
npm run lint:ci || true
continue-on-error: true
- name: Upload ESLint report
if: always()
uses: actions/upload-artifact@v4
with:
name: eslint-report
path: eslint-report.json
retention-days: 30
complexity-check:
name: Code Complexity Analysis
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Analyze code complexity
run: |
echo "Checking for high complexity functions..."
npm run lint 2>&1 | grep -i "complexity" || echo "No high complexity issues found"
continue-on-error: true
summary:
name: Quality Gate Summary
runs-on: ubuntu-latest
needs: [lint, complexity-check]
if: always()
steps:
- name: Check quality gate status
run: |
if [ "${{ needs.lint.result }}" != "success" ]; then
echo "❌ Linting failed - see details above"
exit 1
fi
echo "✅ All quality checks passed!"