我正在尝试在推送到主分支时自动构建和部署我的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”分支的情况下尝试了两种方法。
以下是详细的the travis build状态。
任何有关解决此问题的建议/线索表示赞赏。提前谢谢。
答案 0 :(得分:4)
如果指定了tags: true
,则只会部署标记的提交。如果我没有弄错的话,Travis CI没有明确检查这样的提交是哪个分支。因此,要么指定tags: true
,要使标记的提交 OR 指定branch: master
并提交此分支以触发部署。
但是使用这两种语句都行不通。
您可以在Travis CI documentation(类似于GitHub)中找到一条说明:
tags
:设置为true
时,会在将标记应用于提交时部署应用程序。 (由于known issue,您还应设置all_branches: true
。)
所以正确的答案是指定分支 OR 使用tags: true
和all_branches: true
。
如果你正在使用GitHub:
请注意,部署 GitHub版本仅适用于代码,而不适用于分支机构。