跳过使用 npm 提供程序的部署,因为不允许部署此分支

Skipping deployment with the npm provider because this branch is not permitted to deploy

我正在尝试在推送到 master 分支时自动构建和部署我的 npm 包到 npm 注册表。

这是我的 .travis.yml 文件内容:

language: node_js
node_js:
- '0.11'
- '0.10'
deploy:
  provider: npm
  api_key:
    secure: XXX
  on:
    tags: true
    branch: master

构建运行成功,但部署失败并显示消息:

Skipping deployment with the npm provider because this branch is not permitted to deploy.

这是为什么?我在没有指定任何分支和明确指定 'master' 分支的情况下都尝试了。

这里是 the travis build 状态的详细信息。

任何 suggestion/clue 解决此问题的方法都值得赞赏。提前致谢。

如果您指定 tags: true,则只会部署标记的提交。如果我没记错的话,Travis CI 不会明确检查此类提交在哪个分支上。因此,要么指定 tags: true,然后进行标记提交 指定 branch: master 并提交到该分支以触发部署。

但是同时使用这两种语句是行不通的。

您可以在 Travis CI documentation (similar for GitHub) 中找到一条说明:

tags: When set to true, the application is deployed when a tag is applied to the commit. (Due to a known issue, you should also set all_branches: true.)

所以正确的答案是指定分支 使用 tags: trueall_branches: true.

如果您使用 GitHub:

Please note that deploying GitHub Releases works only for tags, not for branches.