状況
- 社内ネットワーク内にある mac で動いてる Jenkins
- Jenkins の job のログを社外からも見たい
- できれば Github の Pull Request のページから簡単に飛びたい
- ログには色々な token とかの機密情報が平文で入ってるから限られた人だけが見れるようにしたい
- VPN とかよくわからない
やったこと
- 下のようなコメンドで Jenkins のビルドログを Dropbox 内の特定のディレクトリに書き出します
curl $BUILD_URL/consoleFull > path/to/dropbox/logs/log_${BUILD_NUMBER}.html
- Dropbox の設定でこのディレクトリ(logs)を共有したいメンバーに共有します
-
https://www.dropbox.com/home/logs?preview=logs_${BUILD_NUMBER}.html
という URL でブラウザから見れるようになります
- github の Statuses API を使って先程の dropbox の URL を Pull Requset の status に書き込みます
- curl 使って書き込めます
これらを行った結果、下の画像の Dropbox
という context の Details から dropbox のページが開けるのでどこからでも安全に jenkins のログを見れるようになりました。

まとめ
Jenkins のログを Dropbox に書き出す処理自体は以前から行っていましたが、今回社内から Dropbox を同期しないでブラウザから簡単に見たいという要望がありました。
共有 URL を発行すると誰でも見れてしまうため不安だったので Dropbox の共有機能を使って必要なユーザーだけが見れるようにしました。
Github の Pull Request の Status の Detail に URL を載せることで簡単にログにアクセスできるようになりました(フォルダをマウントする形式だとビルド番号からファイル名を探すのが結構手間だった)。
ちょっとした改善でとても効率的になった気がします。