配置.travis.yml
每当travis ci完成一次成功的构建,都可以自动向npmjs.com源发布npm模块。默认情况下,travis会向npmjs.com发布,用户也可以通过package.json文件的publishConfig.registry设置其他的源。
一个简单的配置如下,
如图所示,我们需要配置email和api_key。首先在你本地使用npm addUser命令添加npm账户,如果没有npm账户请先注册一下。
然后打开用户目录下的.npmrc,就会发现每个源都对应一个_authToken,api_key就是它的值。但是如果你把这个秘钥的明文发布到网上肯定是不完全的,所以需要加密一下,想加密就需要安装Ruby的包travis。
安装travis
如果你是第一次使用gem工具的话,运气不好肯定会踩很多坑!
安装命令如下,
gem install travis 不出意外的话,这个命令会运行失败,因为gem自带的源https://rubygems.org不能用,可以用下面的命令查看当前的源确认一下。
gem source -l 现在我们把它删掉,用如下命令,
gem sources --remove rubygems.org/ 然后再添加一个新的源,
gem sources -a gems.ruby-china.com/ 运行完这些命令,不出意外源的话切换工作就完成了。
我们再去运行travis的安装命令,但是还是给我报错,表示没有操作/usr/bin目录的权限。大家如果遇到这个问题,换成如下命令,
gem install travis -n /usr/local/bin/ 换一个安装目录,这个时候travis就安装成功了。
登录
travis安装完成过后,需要先登录,命令如下,
travis login
运行这个命令会让你输入github的账号,如果这个命令登录不好使,可以使用github token登录,命令如下,
travis login --github-token xxxxxxxxxxxxxx 上面的xxxx需要在你的Github账号中生成,操作路径 Settings->Developer settings->Personal access tokens ->generate new tokens。
如果运行以上命令提示你的github账号没有给travis.org授权,而你之前明明已经登录了travis平台,并且已经授权,那为啥还会出现这样的错误呢?
原来Travis CI的网站有两个,travis-ci.org专门针对开源项目,GitHub上所有的公开仓库都能够免费使用;travis-ci.com针对私有及商业项目,新用户前100次构建是免费的,后面就要收费了。很有可能你之前登录的是travis-ci.com,所以这时候你要登录一下travis-ci.org。登录完了,再去运行上面的命令应该就不会有问题了。
加密
登录完成过后就可以在项目中加密authToken了,命令有两种,如下, 18622)
travis setup npm 或者
travis encrypt YOUR_AUTH_TOKEN --add deploy.api_key 运行完成之后,.travis.yml文件的配置就会发生改变,如下,
secure就是加密后的token,你再把.travis.yml提交,此后travis就能帮你自动发布npm包了。
图3中tags表示只有带tag的提交才会被发布到npm,除了tag,还可以声明特定的分支被发布,如下,
deploy: ... on: branch: production