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@v5 with: submodules: false - name: Setup node uses: actions/setup-node@v5 with: node-version: 24 - run: npm ci - run: npm run build-prod - uses: actions/upload-artifact@v6 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@v5 with: submodules: false - name: Setup node uses: actions/setup-node@v5 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@v5 - uses: actions/setup-node@v5 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@v5 - uses: actions/setup-node@v5 with: node-version: "24" cache: "npm" - run: npm ci - run: npx prettier --check .