Skip to content

chore(deps): bump the npm group with 4 updates #100

chore(deps): bump the npm group with 4 updates

chore(deps): bump the npm group with 4 updates #100

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
permissions:
contents: read
jobs:
test:
name: Test
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run lint
run: npm run lint
- name: Check Svelte
run: npm run check-svelte
- name: Run tests
run: npm run test
- name: Check formatting
run: npm run format:check
- name: Build
run: npm run build
- name: Run tests with coverage
run: npm run test:coverage || true
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v6
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
- name: Check bundle size
run: |
# Check if any chunk exceeds threshold (1.1MB)
MAX_SIZE=1100000
for file in .svelte-kit/output/client/_app/immutable/chunks/*.js; do
if [ -f "$file" ]; then
size=$(stat -c%s "$file" 2>/dev/null || stat -f%z "$file" 2>/dev/null)
filename=$(basename "$file")
if [ $size -gt $MAX_SIZE ]; then
echo "❌ ERROR: $filename is ${size} bytes (exceeds ${MAX_SIZE} bytes)"
echo "Bundle size regression detected!"
exit 1
else
echo "✅ $filename: ${size} bytes"
fi
fi
done
echo "All chunks are under the size threshold ✓"
- name: Upload bundle stats
uses: actions/upload-artifact@v7
with:
name: bundle-stats
path: stats.html
retention-days: 30
e2e:
name: E2E (${{ matrix.browser }})
# macOS has native GPU/WebGL support, required for MapLibre GL
runs-on: macos-latest
needs: test
strategy:
fail-fast: false
matrix:
browser: [chromium, firefox, webkit]
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Install Playwright browser
run: npx playwright install --with-deps ${{ matrix.browser }}
- name: Install tippecanoe
run: brew install tippecanoe
- name: Build application
run: npm run build
- name: Run E2E tests
run: npm run test:e2e
env:
PLAYWRIGHT_PROJECT: ${{ matrix.browser }}
- name: Upload test results
uses: actions/upload-artifact@v7
if: failure()
with:
name: playwright-report-${{ matrix.browser }}
path: playwright-report/
retention-days: 7