LoginSignup
15
7

More than 5 years have passed since last update.

「ライブラリーを上げようBOT」でバージョンアップに追随する健全な仕組み

Last updated at Posted at 2017-07-18

ライブラリーは気がつかないうちに、新しいバージョンがリリースされていたりして取り残される。
バージョンアップ毎に毎回対応していれば良いのですが、一気に上げようとすると大抵動かなかったり、依存関係が壊れたりします。それで、ライブラリーのバージョンアップが上げられずにずっと放置されてしまうみたいなことありますよね。

ですが、プロジェクト内で使用している何百ものライブラリーのすべてのバージョンをチェックをするのは大変です。というか無理です。
なのでBOT化してバージョンアップ毎に小さく対応していける健全な開発を行いましょう。

SlackBotを作った

ということで、Slackに各ライブラリーの現在バージョンと最新のバージョンが流れてくるようにしました。

Artboard.png

対応してないと、毎週こいつが煽ってくる。

仕組み

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に載っけました。

ビルドトリガーで定期的に実行
スクリーンショット 2017-07-18 10.13.42.png
毎日くるとウザいので、週1にしています。

GitのRepositoryと先程のシェルスクリプトを設定すれば勝手に流れてくるようになります。

15
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
7