chore(release): local-deploy.sh CLI publish 優先用 .env NPM_API_TOKEN
互動 npm login 常因 publish 安全政策 403;改優先讀 .env 的 NPM_API_TOKEN (authToken 方式)publish,無 token 才退回 npm whoami。token 不入 log。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+16
-3
@@ -278,18 +278,31 @@ if [[ "${DRY_RUN:-false}" != "true" ]]; then
|
|||||||
echo " · 已 bump → $NEW_V,並記錄進 $CHANGELOG(記得 commit 這兩個檔)"
|
echo " · 已 bump → $NEW_V,並記錄進 $CHANGELOG(記得 commit 這兩個檔)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! npm whoami >/dev/null 2>&1; then
|
# 優先用 .env 的 NPM_API_TOKEN(authToken)——互動 npm login 常因 publish 政策 403。
|
||||||
echo " ⚠ 未 npm login(npm whoami 失敗),跳過 publish。手動:cd cli && npm publish"
|
# 無 token 才退回 npm whoami(互動登入)。token 不入 log。
|
||||||
|
NPM_TOK=""
|
||||||
|
if [[ -f .env ]]; then
|
||||||
|
NPM_TOK=$(grep '^NPM_API_TOKEN=' .env 2>/dev/null | head -1 | cut -d= -f2- | tr -d '"'"'"' \r\n')
|
||||||
|
fi
|
||||||
|
PUB_RC=""
|
||||||
|
if [[ -n "$NPM_TOK" ]]; then
|
||||||
|
PUB_RC=$(mktemp)
|
||||||
|
printf '//registry.npmjs.org/:_authToken=%s\n' "$NPM_TOK" > "$PUB_RC"
|
||||||
|
fi
|
||||||
|
if [[ -z "$NPM_TOK" ]] && ! npm whoami >/dev/null 2>&1; then
|
||||||
|
echo " ⚠ 無 .env NPM_API_TOKEN 且未 npm login,跳過 publish。手動:cd cli && npm publish"
|
||||||
FAILED+=("cli:npm-publish(未登入)")
|
FAILED+=("cli:npm-publish(未登入)")
|
||||||
else
|
else
|
||||||
echo " 📦 publish arcrun $REMOTE_V → $LOCAL_V ..."
|
echo " 📦 publish arcrun $REMOTE_V → $LOCAL_V ..."
|
||||||
if (cd cli && npm run build >/dev/null 2>&1 && npm publish --access public 2>&1 | tail -3); then
|
if (cd cli && npm run build >/dev/null 2>&1 && \
|
||||||
|
NPM_CONFIG_USERCONFIG="${PUB_RC:-$HOME/.npmrc}" npm publish --access public 2>&1 | tail -3); then
|
||||||
echo " ✅ npm publish 完成(arcrun@$LOCAL_V)"
|
echo " ✅ npm publish 完成(arcrun@$LOCAL_V)"
|
||||||
else
|
else
|
||||||
echo " ❌ npm publish 失敗"
|
echo " ❌ npm publish 失敗"
|
||||||
FAILED+=("cli:npm-publish")
|
FAILED+=("cli:npm-publish")
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
[[ -n "$PUB_RC" ]] && rm -f "$PUB_RC"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user