cheatingchelsea/.github/workflows/build-check.yml
Derek Slenk cb164b8255 Add build check workflow for non-master branches
- Runs on all pushes except to master branch
- Also runs on pull requests
- Performs linting, building, and optional testing
- Provides fast feedback for development branches
- Uses concurrency groups to cancel outdated runs
2025-06-29 17:49:33 -04:00

66 lines
1.8 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Workflow for building and testing Next.js site on non-master branches
name: Build Check
on:
# Runs on pushes to any branch except master
push:
branches-ignore: ["master"]
# Runs on pull requests targeting any branch
pull_request:
branches: ["*"]
# Allow multiple concurrent build checks
concurrency:
group: "build-check-${{ github.ref }}"
cancel-in-progress: true
jobs:
build-check:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Restore Next.js cache
uses: actions/cache@v4
with:
path: |
.next/cache
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }}
restore-keys: |
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-
- name: Run linting
run: npm run lint
- name: Build Next.js site
run: npm run build
- name: Run tests (if available)
run: |
if npm run test --if-present; then
echo "✅ Tests passed"
else
echo " No tests found or tests skipped"
fi
continue-on-error: true
- name: Build verification complete
run: |
echo "🎉 Build verification successful!"
echo "✅ Dependencies installed"
echo "✅ Linting passed"
echo "✅ Build completed successfully"
echo "Ready for review and merge!"