name: πŸ§ͺ CI on: merge_group: types: - checks_requested pull_request: push: branches: [main] permissions: {} jobs: build: name: πŸ—οΈ Build runs-on: ubuntu-latest timeout-minutes: 30 steps: - name: Checkout repository uses: actions/checkout@v6 with: submodules: false - name: Setup node uses: actions/setup-node@v6 with: node-version: 24 - run: npm ci - run: npm run build-prod - uses: actions/upload-artifact@v7 with: path: out/index.html retention-days: 1 test: name: πŸ”¬ Test runs-on: ubuntu-latest timeout-minutes: 30 steps: - name: Checkout repository uses: actions/checkout@v6 with: submodules: false - name: Setup node uses: actions/setup-node@v6 with: node-version: 24 - run: npm ci - run: npm run test:coverage eslint: name: πŸ” ESLint runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: "24" cache: "npm" - run: npm ci - run: npx eslint --format gha prettier: name: 🎨 Prettier runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: "24" cache: "npm" - run: npm ci - run: npx prettier --check . gen-maps: name: πŸ—ΊοΈ Generated maps up to date runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: "24" cache: "npm" - uses: actions/setup-go@v6 with: go-version-file: map-generator/go.mod cache-dependency-path: map-generator/go.sum - run: npm ci - run: npm run gen-maps - name: Check for diff run: | if [ -n "$(git status --porcelain)" ]; then echo "::error::Generated maps are out of date β€” run 'npm run gen-maps' and commit the result." git status --short git --no-pager diff exit 1 fi