我正在使用Travis将npm模块发布到npmjs.org。
.travis.yml
的相关部分是:
before_deploy:
- npm version minor
- git config credential.helper "store --file=.git/credentials"
- echo "https://${GH_TOKEN}:@github.com" > .git/credentials
- git push && git push --tags
我看到标签已创建,但对package.json
的更改不使其成为git repo。
查看travis-ci.org
的日志,我看到了:
$ npm version minor
v1.3.0
$ git config credential.helper "store --file=.git/credentials"
$ echo "https://${GH_TOKEN}:@github.com" > .git/credentials
$ git push && git push --tags
Everything up-to-date
Counting objects: 6, done.
Delta compression using up to 16 threads.
Compressing objects: 25% (1/4)
Compressing objects: 50% (2/4)
Compressing objects: 75% (3/4)
Compressing objects: 100% (4/4)
Compressing objects: 100% (4/4), done.
Writing objects: 25% (1/4)
Writing objects: 50% (2/4)
Writing objects: 75% (3/4)
Writing objects: 100% (4/4)
Writing objects: 100% (4/4), 411 bytes | 0 bytes/s, done.
Total 4 (delta 2), reused 0 (delta 0)
To https://github.com/Jellyvision/basecamp-api.git
* [new tag] v1.3.0 -> v1.3.0
所以,很明显,对package.json的更改没有被添加或提交,因为push
显示所有内容都是最新的。
新标记 被推高,以获得它的价值。
当我在本地运行npm version minor
时,我看到新的提交按预期生成,所以我猜这是与环境相关的,但我在文档中找不到任何暗示{{1}的内容在CI环境中将以不同的方式工作。
有关这里发生了什么的任何建议吗?
答案 0 :(得分:0)
我们创建了这个publish.sh
脚本,以首先更新npm软件包的版本,然后更新我们的存储库...
#!/bin/sh
npm version $1
git push --follow-tags
npm publish
示例用法:
%> ./publish.sh 2.2.41
注意使用git push --follow-tags
。这样具有如下效果:更改package.json
文件中的版本,使用package.json
中的版本在git中创建标签发行版,并更新master
分支。
答案 1 :(得分:0)
我遇到了同样的问题。
使用标志--git-tag-version
对我有用。
npm version minor --git-tag-version