インストールがとても高速化されたcapistrano-strategy-jenkins_artifact 0.4.0をリリースした

GitHub - aereal/capistrano-strategy-jenkins_artifact: Capistrano 2 strategy that uses Jenkins' artifact as a distribution provider.

Release v0.4.0 · aereal/capistrano-strategy-jenkins_artifact · GitHub

capistrano-strategy-jenkins_artifactというgemを作ってメンテしており、これの0.4.0をリリースしました。

Travisのビルドでは最大約30倍速くなりました:

`bundle install` before: 126.69sec
`bundle install` after: 4.22sec

Goodbye jenkins_api_client by aereal · Pull Request #21 · aereal/capistrano-strategy-jenkins_artifact · GitHub

JenkinsのAPIを利用するためにjenkins_api_clientというgemを使っていたのですが、これはXML APIを利用することもあるので依存にnokogiriが入っており、`bundle install` に時間がかかるのがネックでした。

実際にこのgemで利用するAPIJSON APIでまかなえたので、net/httpベースで書き直すことでjenkins_api_client経由のnokogiri依存をなくしました。ありがとうjenkins_api_client.

このgemはCapistrano 2 strategy that uses Jenkins' artifact as a distribution provider.という説明の通り、Jenkinsのビルド成果物を取得するstrategyを提供します。

もともとはてなブログのデプロイ設定のために書いていたコードをgemとして切り出したもので、いまではMackerelなど社内のいくつかのサービスで導入されています。gem化してよかった。

ついでにOSS化したことでテストをちゃんと書こうというモチベーションが高まりお得。

参考: はてなブログのデプロイを約6倍高速化したはなし - Sexually Knowing