ライブラリーは気がつかないうちに、新しいバージョンがリリースされていたりして取り残される。
バージョンアップ毎に毎回対応していれば良いのですが、一気に上げようとすると大抵動かなかったり、依存関係が壊れたりします。それで、ライブラリーのバージョンアップが上げられずにずっと放置されてしまうみたいなことありますよね。
ですが、プロジェクト内で使用している何百ものライブラリーのすべてのバージョンをチェックをするのは大変です。というか無理です。
なのでBOT化してバージョンアップ毎に小さく対応していける健全な開発を行いましょう。
SlackBotを作った
ということで、Slackに各ライブラリーの現在バージョンと最新のバージョンが流れてくるようにしました。
対応してないと、毎週こいつが煽ってくる。
仕組み
node.jsの場合 npm outdated
というコマンドが用意されており、
シェルスクリプトからSlackのWebhookに送っています。
npm install
outdated=`npm outdated`
if [ "${outdated}" = "" ] ; then
echo ok
exit
fi
# todo: webhookを取得して差し替えてください
WEBHOOKURL="https://hooks.slack.com/services/xxxxx/xxxxx/xxxxxxxxxxxxx"
curl -s -S -X POST --data-urlencode "payload={\"text\": \"*ライブラリー上げてなくない?*\r\n\`\`\`${outdated}\`\`\`\" }" ${WEBHOOKURL}
あとは、こいつをcronとかで回すだけ
Jenkinsに設定
自分の場合はCIにJenkinsを使っているので、Jenkinsに載っけました。
ビルドトリガーで定期的に実行
毎日くるとウザいので、週1にしています。
GitのRepositoryと先程のシェルスクリプトを設定すれば勝手に流れてくるようになります。