name: Setup PNPM description: Sets up Node.js and runs PNPM so dependencies are installed. inputs: node-version: description: Node.js version required: false default: "20" runs: using: composite steps: - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: ${{ inputs.node-version }} check-latest: true - name: Enable Corepack shell: bash run: corepack enable - name: Get PNPM store directory id: pnpm-cache shell: bash run: | echo "store-path=$(pnpm store path --silent)" >> $GITHUB_OUTPUT - uses: actions/cache@v4 name: Setup PNPM cache with: # Also cache Cypress binary. path: | ~/.cache/Cypress ${{ steps.pnpm-cache.outputs.store-path }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - name: Install dependencies shell: bash # Run the store prune after the installation to avoid having caches which grow over time run: | pnpm install --prefer-offline --frozen-lockfile pnpm store prune