30 lines
1.1 KiB
YAML
30 lines
1.1 KiB
YAML
name: Cache production build binaries
|
|
description: "Cache or restore if necessary"
|
|
inputs:
|
|
node_version:
|
|
required: false
|
|
default: v18.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
|
|
${{ github.workspace }}/apps/web/public/embed
|
|
**/.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
|