git-releaseへテストを走らせる機能を追加した。package.json
が見つかり、かつテストが定義されている場合にnpm test
を走らせるという自分の必要最小限のものだけにしておいた。冬になるとタイピングをミスってよくnpm test & git release patchとやってしまい、アーアーアーってなるのを予防したかった。
Gitと同じようにnpmでもいくつかnpm関連の情報を出力するだけのサブコマンドがある。prefix
サブコマンドは一番近いpackage.json
のあるディレクトリーかカレント・ディレクトリーが出力される。
$ npm prefix C:/Users/Kyo/Projects/node-git-release
あとはそこにあるかもしれないpackage.json
を読んで、scripts
フィールドのtest
が存在すればnpm test
を実行するだけだ。package.json
読んで色々取得できるサブコマンドとかも欲しくなる。
テストが通れば、今までと同じようにバージョン番号を上げて、コミットし、タグをつけ、設定によってはプッシュする。
テストが通らない時にリリースできないというささやかな問題はあるが、僕の用途ではこれで十分そうだった。private
フィールドを見て、それに応じてnpm publish
するまで自動化したいが、publishConfig
フィールドのことがよくわかっていないのでまだやっていない。設定を増やすと解決できるが、それはしたくない。まずはprivate
とpublishConfig
がない場合だけnpm publish
も走らせるようにすれば良いのかもしれない。
簡単にやりたい場合はBashでnpm
やgit
をフックしてnpm test
を差し込むだけでも良い。しかしそれだと実行する時にnpm関連のプロジェクトかどうかで使い分ける必要があり、感覚的に面倒だった。それをラップして良しなに振り分けるにはBash力が0に近すぎて無理だった。
Bash力を上げたい……とはまったく思わなくて不思議だ。BashスクリプトはVimスクリプトと同じくらい書きたくない。