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
    - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4
      with:
        run_install: false
        package_json_file: frontend/package.json
    - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
      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
