mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-09 05:19:32 +08:00
* CI: scope jobs and reuse build artifacts * CI: fix scope fallback and remove unused artifact job * CI: remove setup-node pnpm cache inputs * CI: add pnpm store cache and dist artifact smoke * CI: extract pnpm cache action and consume dist artifact
42 lines
1.2 KiB
YAML
42 lines
1.2 KiB
YAML
name: Setup pnpm + store cache
|
|
description: Prepare pnpm via corepack and restore pnpm store cache.
|
|
inputs:
|
|
pnpm-version:
|
|
description: pnpm version to activate via corepack.
|
|
required: false
|
|
default: "10.23.0"
|
|
cache-key-suffix:
|
|
description: Suffix appended to the cache key.
|
|
required: false
|
|
default: "node22"
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Setup pnpm (corepack retry)
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
corepack enable
|
|
for attempt in 1 2 3; do
|
|
if corepack prepare "pnpm@${{ inputs.pnpm-version }}" --activate; then
|
|
pnpm -v
|
|
exit 0
|
|
fi
|
|
echo "corepack prepare failed (attempt $attempt/3). Retrying..."
|
|
sleep $((attempt * 10))
|
|
done
|
|
exit 1
|
|
|
|
- name: Resolve pnpm store path
|
|
id: pnpm-store
|
|
shell: bash
|
|
run: echo "path=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Restore pnpm store cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ${{ steps.pnpm-store.outputs.path }}
|
|
key: ${{ runner.os }}-pnpm-store-${{ inputs.cache-key-suffix }}-${{ hashFiles('pnpm-lock.yaml') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pnpm-store-${{ inputs.cache-key-suffix }}-
|