我正在尝试在推送到主分支时自动构建 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
生成成功运行,但部署失败,并显示以下消息:
跳过使用 npm 提供程序的部署,因为不允许部署此分支。
为什么?我在没有指定任何分支和显式指定"master"分支的情况下尝试了这两种方法。
以下是特拉维斯构建状态的详细信息。
任何解决此问题的建议/线索将不胜感激。提前谢谢。
根据您指定的tags: true
,将仅部署标记的提交。如果我没记错的话,Travis CI 没有明确检查这样的提交在哪个分支上。因此,要么指定tags: true
,然后进行标记提交,要么指定branch: master
并提交到此分支以触发部署。
但是同时使用这两个语句是行不通的。
您可以在 Travis CI 文档(类似于 GitHub)中找到一条注释,指出:
tags
:当设置为true
时,当将标记应用于提交时,将部署应用程序。(由于已知问题,还应设置all_branches: true
。
所以正确的答案是指定一个分支或使用 tags: true
和 all_branches: true
.
如果您使用的是 GitHub:
请注意,部署 GitHub 版本仅适用于标签,不适用于分支。