Travis CI で npm package の自動リリースに挑戦したら失敗したので、 package を deprecate した話

Travis CI で npm package を自動リリースできるっぽいので、設定してみた。

そして、失敗したので deprecate した話。

参考ページ

npm Releasing
https://docs.travis-ci.com/user/deployment/npm

やったこと

clairvoyance の npm publish を自動化してみようと、上記のページを参考に設定してみた。

# .travis.yml
deploy:
  provider: npm
  email: sinsoku.listy@gmail.com
  on:
    tags: true

npm の api token は npm login を実行すると、 ~/.npmrc に追記されるので、それを travis コマンドで設定する。

$ travis encrypt YOUR_API_KEY --add deploy.api_key

あとは git tag でタグを作成し、 git push origin v0.4.1 でプッシュすると自動的に publish された。

リリース失敗

新しいバージョンである v0.4.1 が自動的に publish されたが、パッケージが壊れていた。

原因は gulp build した後のファイルがパッケージに含まれていないため。

修正&再リリース

このあたり を読むと、 .npmignore がない場合、デフォルトでは .gitignore を参照するっぽい。というわけで、 .npmignore を用意した。

coverage/
maps/
node_modules/
src/
test/

そして、新たに v0.4.2 のタグを作ってプッシュしたところ、動くようになった。

npm-deprecate

公開してしまった v0.4.1deprecate にしておいた。

$ npm deprecate clairvoyance@0.4.1 "v0.4.1 does not work, please upgrade to v0.4.2."

ちゃんとインストールするときに WARNING が出るようになってた。

$ npm i clairvoyance@0.4.1         
npm WARN deprecated clairvoyance@0.4.1: v0.4.1 does not work, please upgrade to v0.4.2.