name: Build console on: workflow_call: inputs: node_version: required: true type: string outputs: cache_key: value: ${{ jobs.build.outputs.cache_key }} cache_path: value: ${{ jobs.build.outputs.cache_path }} env: cache_path: console/dist/console jobs: build: outputs: cache_key: ${{ steps.cache.outputs.cache-primary-key }} cache_path: ${{ env.cache_path }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/cache/restore@v4 timeout-minutes: 1 continue-on-error: true id: cache with: key: console-${{ hashFiles('console', 'proto', '!console/dist') }} restore-keys: | console- path: ${{ env.cache_path }} - if: ${{ steps.cache.outputs.cache-hit != 'true' }} uses: pnpm/action-setup@v4 - if: ${{ steps.cache.outputs.cache-hit != 'true' }} uses: actions/setup-node@v4 with: node-version: ${{ inputs.node_version }} cache: "pnpm" cache-dependency-path: pnpm-lock.yaml - if: ${{ steps.cache.outputs.cache-hit != 'true' }} name: Install dependencies run: pnpm install --frozen-lockfile - if: ${{ steps.cache.outputs.cache-hit != 'true' }} name: Build console with Turbo run: pnpm turbo build --filter=./console - if: ${{ steps.cache.outputs.cache-hit != 'true' }} uses: actions/cache/save@v4 with: path: ${{ env.cache_path }} key: ${{ steps.cache.outputs.cache-primary-key }}