name: Setup Frontend
description: |
  Common setup for frontend jobs using pnpm
  Skips heavy binary installs that are needed for e2e by default
inputs:
  install-e2e-binaries:
    description: 'Install heavy e2e binary downloads'
    required: false
    default: 'false'
runs:
  using: "composite"
  steps:
    - if: inputs.install-e2e-binaries == 'false'
      shell: bash
      run: |
        echo "CYPRESS_INSTALL_BINARY=0"             >> $GITHUB_ENV
        echo "PUPPETEER_SKIP_DOWNLOAD=true"         >> $GITHUB_ENV
        echo "PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1"   >> $GITHUB_ENV
    - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4
      with:
        run_install: false
        package_json_file: frontend/package.json
    - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
      with:
        node-version-file: frontend/.nvmrc
        cache: 'pnpm'
        cache-dependency-path: frontend/pnpm-lock.yaml
    - name: Install dependencies
      working-directory: frontend
      run: pnpm install --frozen-lockfile --prefer-offline
      shell: bash
