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
This commit is contained in:
parent
57558687d9
commit
cb164b8255
1 changed files with 66 additions and 0 deletions
66
.github/workflows/build-check.yml
vendored
Normal file
66
.github/workflows/build-check.yml
vendored
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
# 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!"
|
Loading…
Add table
Add a link
Reference in a new issue