name: Build and Check

on:
  push:
    branches: [ main ] # Adjust branches as needed
  pull_request:
    branches: [ main ] # Adjust branches as needed

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

permissions:
  contents: read

jobs:
  check:
    strategy:
      matrix:
        node: [ 22, 23 ]
    runs-on: ubuntu-latest
    name: Astro Check for Node.js ${{ matrix.node }}
    steps:
      - name: Setup Node.js
        uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
        with:
          node-version: ${{ matrix.node }} # Use LTS

      - name: Checkout
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Setup pnpm
        uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
        with:
          run_install: false # Disable auto-install

      - name: Install dependencies
        run: pnpm install --frozen-lockfile

      - name: Run Astro Check
        run: pnpm astro check

  build:
    strategy:
      matrix:
        node: [ 22, 23 ]
    runs-on: ubuntu-latest
    name: Astro Build for Node.js ${{ matrix.node }} # Corrected job name
    steps:
      - name: Setup Node.js
        uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
        with:
          node-version: ${{ matrix.node }}

      - name: Checkout
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Setup pnpm
        uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
        with:
          run_install: false # Disable auto-install

      - name: Install dependencies
        run: pnpm install --frozen-lockfile

      - name: Run Astro Build
        run: pnpm astro build
