name: Setup description: Checkout, cache and install dependencies runs: using: composite steps: - name: Cache node_modules id: cache-node-modules uses: actions/cache@v4 with: path: | node_modules web/node_modules backend/api/node_modules backend/shared/node_modules backend/email/node_modules common/node_modules key: node-modules-${{ hashFiles('**/yarn.lock') }} - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '22' - name: Install dependencies if: steps.cache-node-modules.outputs.cache-hit != 'true' run: yarn install --frozen-lockfile shell: bash - name: Post-install if: steps.cache-node-modules.outputs.cache-hit == 'true' run: yarn postinstall shell: bash