From 631cc6961fceafec22de4dc262ce8cb282bc1043 Mon Sep 17 00:00:00 2001 From: Lyda <1829913225@qq.com> Date: Thu, 21 Aug 2025 10:13:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=20npm-install=20GitH?= =?UTF-8?q?ub=20Action=EF=BC=8C=E6=B7=BB=E5=8A=A0=E9=94=81=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=A3=80=E6=B5=8B=E6=AD=A5=E9=AA=A4=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=BC=93=E5=AD=98key=E7=94=9F=E6=88=90=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E7=A1=AE=E4=BF=9D=E5=9C=A8=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E9=94=81=E6=96=87=E4=BB=B6hash=E6=97=B6?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E9=BB=98=E8=AE=A4=E5=80=BC=EF=BC=8C=E6=8F=90?= =?UTF-8?q?=E5=8D=87=E7=BC=93=E5=AD=98=E7=AE=A1=E7=90=86=E7=9A=84=E5=8F=AF?= =?UTF-8?q?=E9=9D=A0=E6=80=A7=E5=92=8C=E7=81=B5=E6=B4=BB=E6=80=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- npm-install/action.yml | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/npm-install/action.yml b/npm-install/action.yml index ab416b7..6d43a69 100644 --- a/npm-install/action.yml +++ b/npm-install/action.yml @@ -52,8 +52,8 @@ outputs: runs: using: 'composite' steps: - - name: 生成缓存key - id: cache-key + - name: 检测锁文件 + id: detect-lockfile shell: bash run: | LOCKFILE="${{ inputs.lockfile-name }}" @@ -73,10 +73,29 @@ runs: fi fi - CACHE_KEY="${{ runner.os }}-${{ inputs.cache-prefix }}-$(echo '${{ hashFiles('${LOCKFILE}') }}' | head -c 12)" - echo "key=${CACHE_KEY}" >> $GITHUB_OUTPUT echo "lockfile=${LOCKFILE}" >> $GITHUB_OUTPUT echo "使用锁文件: ${LOCKFILE}" + + - name: 生成缓存key + id: cache-key + shell: bash + env: + LOCKFILE_HASH: ${{ hashFiles(steps.detect-lockfile.outputs.lockfile) }} + run: | + LOCKFILE="${{ steps.detect-lockfile.outputs.lockfile }}" + + # 截取hash的前12位 + if [[ -n "${LOCKFILE_HASH}" && "${LOCKFILE_HASH}" != "" ]]; then + LOCKFILE_HASH_SHORT=$(echo "${LOCKFILE_HASH}" | head -c 12) + else + echo "⚠️ 警告: 无法计算锁文件hash,使用默认值" + LOCKFILE_HASH_SHORT="no-lockfile" + fi + + CACHE_KEY="${{ runner.os }}-${{ inputs.cache-prefix }}-${LOCKFILE_HASH_SHORT}" + echo "key=${CACHE_KEY}" >> $GITHUB_OUTPUT + echo "锁文件: ${LOCKFILE}" + echo "文件hash: ${LOCKFILE_HASH}" echo "缓存key: ${CACHE_KEY}" - name: 拉取缓存依赖