chore(deps): bump the npm group with 4 updates #100
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |