hogepiyoエンジニアリング

トラブルシューティングからノウハウ、作ってみた系まで扱う情報系ブログ

サーバ・Gitブランチ管理ツールつくりました

最近プロジェクトの開発環境を徐々に変えていまして、いままでは複数の案件の変更をstagingブランチにまとめたうえで1台の動作確認用サーバにデプロイしていたんですが、やっぱり案件ごとに確認したいだろうということで案件の数だけサーバを用意してそれぞれに案件のブランチをデプロイする環境に移行しています。

しかし、こういう体制に移行しようという話が出た時からの懸案事項がありました。

つまり、どのサーバにどのブランチがデプロイされているのか混乱しないのかと

うっかり他の人が使っているサーバにデプロイしてしまっては、殴り合いが起きかねません。大変です。

これを解決するために、現在各サーバにデプロイされているブランチを一覧できるツール Pigeonholeをつくりました(真の目的はScalaの練習だったりするんですが)

github.com

このツールでは下の図のような表形式でサーバとブランチの対応関係を表示します


f:id:marshi:20150712005717p:plain

Pigeonholeのポイントはこの対応関係の登録方法です

PigeonholeではHTTPのPOSTリクエストを受け付ける口を持っていて、そこにJSON形式でホスト名とブランチ名の対応関係を投げることによって登録が行われます

これによって、CIでデプロイしたあとにPigeonholeにリクエストを投げることによって自動的に登録、更新を行うことができます

HTTPリクエストは以下のような感じ

curl -X POST -d Payloads={\"host\":\"${HOST_NAME}\"\,\"branch\":\"${BRANCH_NAME}\"} http://<Pigeionholeのホスト>:<ポート>/hook/deploy

今はプロジェクトで試験稼働中です