name: Cache production build binaries description: "Cache or restore if necessary" inputs: node_version: required: false default: v16.x runs: using: "composite" steps: - name: Cache production build uses: actions/cache@v3 id: cache-build env: cache-name: prod-build key-1: ${{ inputs.node_version }}-${{ hashFiles('yarn.lock') }} key-2: ${{ hashFiles('apps/**/**.[jt]s', 'apps/**/**.[jt]sx', 'packages/**/**.[jt]s', 'packages/**/**.[jt]sx', '!**/node_modules') }} key-3: ${{ github.event.pull_request.number || github.ref }} # Ensures production-build.yml will always be fresh key-4: ${{ github.sha }} with: path: | ${{ github.workspace }}/apps/web/.next **/.turbo/** **/dist/** key: ${{ runner.os }}-${{ env.cache-name }}-${{ env.key-1 }}-${{ env.key-2 }}-${{ env.key-3 }}-${{ env.key-4 }} - run: yarn build if: steps.cache-build.outputs.cache-hit != 'true' shell: bash