创建Release时Github Action未触发生成NPM私有包问题排查
问题排查与修复方案
一、Workflow文件格式错误(导致无工作流记录)
你提供的Workflow配置存在缩进错误,YAML对缩进要求严格,多余的前置空格会导致GitHub无法正确解析该文件,因此Actions页面看不到任何工作流记录。
修复方法:移除所有行前的多余空格,正确格式如下:
name: Node.js Package on: release: types: [created] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 16 - run: npm ci - run: npm test publish-gpr: needs: build runs-on: ubuntu-latest permissions: packages: write contents: read steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 16 registry-url: https://npm.pkg.github.com/ - run: npm ci - run: npm publish env: NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
同时确认文件路径为**.github/workflows/release-package.yaml**(注意Linux环境下路径区分大小写,文件名不要拼写错误)。
二、package.json配置错误
- 无效的
owner字段:owner不是package.json的标准字段,GitHub Packages要求私有包的name必须遵循@你的GitHub用户名/包名格式,比如@my-gh-username/shared-code,需将owner字段替换为正确的name字段。 - scope一致性问题:
publishConfig中的@my-gh-username必须和name字段的scope完全一致,否则发布时会匹配不到对应仓库。
修复后的package.json相关配置示例:
{ ... "name": "@my-gh-username/shared-code", "publishConfig": { "@my-gh-username:registry": "https://npm.pkg.github.com" } ... }
三、触发条件的确认
Workflow的触发条件是release: types: [created],该事件仅在你**在GitHub仓库页面创建正式Release(非草稿)**时触发。如果仅推送Git Tag而未创建对应Release,工作流不会运行,请确认是通过仓库「Releases」板块完成了完整的Release创建操作(填写版本号、描述并发布)。
四、额外注意事项
- 确保仓库为私有仓库,且你拥有该仓库的Packages写入权限(Workflow中配置的
permissions: packages: write是正确的)。 NODE_AUTH_TOKEN使用${{secrets.GITHUB_TOKEN}}无需手动配置,GitHub会自动为工作流注入该令牌。
内容的提问来源于stack exchange,提问作者Mitya
相关产品推荐
相关产品推荐

