status-checks.yml•1.94 kB
name: Required Status Checks
on:
pull_request:
branches: [ main, develop ]
push:
branches: [ main, develop ]
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: '24.x'
cache: 'npm'
- run: npm ci
- run: npm run lint
type-check:
name: Type Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: '24.x'
cache: 'npm'
- run: npm ci
- run: npm run build
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: '24.x'
cache: 'npm'
- run: npm ci
- run: npm test
test-coverage:
name: Test Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: '24.x'
cache: 'npm'
- run: npm ci
- run: npm run test:coverage
- name: Upload coverage reports
uses: codecov/codecov-action@v5
with:
file: ./coverage/lcov.info
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}
# Combine all checks into a single status check
all-checks:
name: All Checks Passed
runs-on: ubuntu-latest
needs: [lint, type-check, test, test-coverage]
if: always()
steps:
- name: Check all jobs
run: |
if [[ "${{ needs.lint.result }}" == "failure" || "${{ needs.type-check.result }}" == "failure" || "${{ needs.test.result }}" == "failure" || "${{ needs.test-coverage.result }}" == "failure" ]]; then
echo "One or more checks failed"
exit 1
else
echo "All checks passed!"
fi