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

时间:2015-01-05 03:28:12

标签: deployment continuous-integration npm build-process travis-ci

我正在尝试在推送到主分支时自动构建和部署我的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状态。

任何有关解决此问题的建议/线索表示赞赏。提前谢谢。

1 个答案:

答案 0 :(得分:4)

如果指定了tags: true,则只会部署标记的提交。如果我没有弄错的话,Travis CI没有明确检查这样的提交是哪个分支。因此,要么指定tags: true,要使标记的提交 OR 指定branch: master并提交此分支以触发部署。

但是使用这两种语句都行不通。

您可以在Travis CI documentation(类似于GitHub)中找到一条说明:

  

tags:设置为true时,会在将标记应用于提交时部署应用程序。 (由于known issue,您还应设置all_branches: true。)

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

如果你正在使用GitHub:

  

请注意,部署 GitHub版本仅适用于代码,而不适用于分支机构。