用途:生成、修复或调试通过 OIDC 可信发布(trusted publishing)把 pnpm 包发布到 npm 的 GitHub Actions 工作流文件(publish.yml),避免每次从 CI 日志里重新摸索细节。它负责编写和修复执行发布的 YAML;账户与仓库 2FA、分支保护、发布环境、发布策略等安全配置属于另一个互补技能。
主要能力:三阶段工作流(test → build → publish);测试与打包按项目现有 Node 目标版本运行,发布步骤独立固定在 Node 24.8.0 或更高(该版本自带 npm 11.6.0,已高于可信发布要求的 npm CLI 11.5.1);提供 npm 版本守卫步骤,低于 11.5.1 时自动升级;打包到 package/*.tgz 作为独立产物,发布任务下载产物后发布其解析路径;使用 GitHub OIDC 可信发布而非 npm token;设置 concurrency 组防止两个 tag 推送竞态发布。
用法要点:所有 Action 必须固定到完整 commit SHA 并附版本注释,模板中的 SHA 是占位符不可照抄;可用 npx actions-up 自动解析并固定,或通过 gh release view 与 gh api 手动查询。pnpm 项目推荐使用 pnpm/setup,优先从 devEngines.runtime 读取运行时,否则沿用 .nvmrc、.node-version、volta.node 或现有 CI 配置,切勿使用 engines.node。发布工作流中 pnpm/setup 设 install: false,再显式执行 pnpm install --frozen-lockfile --ignore-scripts;不要使用 Corepack。每个 actions/checkout 设置 persist-credentials: false。权限最小化:顶层 contents: read,仅 publish 任务获得 id-token: write,并放在 environment: publish 中。建议用 Dependabot 管理 github-actions 更新。
限制:三个 Node 版本(engines.node 消费者下限、测试与构建目标、发布步骤固定版本)不得混用,切勿把发布用版本写入 .nvmrc 或 engines.node;repository.url 必须与实际运行工作流的仓库一致,否则可信溯源校验会以 422 失败;可信发布下不要添加 npm auth token;--provenance 无需手动指定。具体项目配置差异与最新版本请以实际仓库为准。