Jenkins

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Jenkins
初版 2011年2月2日 (2011-02-02)[1]
最新版 2.434 - 2023年11月28日 (3か月前) (2023-11-28)[2] [±]
リポジトリ ウィキデータを編集
プログラミング
言語
Java
対応OS クロスプラットフォーム
種別 継続的インテグレーション
ライセンス MIT license
公式サイト jenkins.io
テンプレートを表示

Jenkinsジェンキンスフリーでオープンソースの自動化サーバである。ソフトウェア開発のビルドテスト 、およびデプロイに関連する部分の自動化を支援し、継続的インテグレーション継続的デリバリーを促進する。Apache Tomcatなどのサーブレットコンテナで動作するサーバベースのシステムである。AccuRevCVSSubversionGitMercurialPerforceClearCase、RTCなどのバージョン管理ツールをサポートしており、Apache AntApache Maven 、およびsbtベースのプロジェクトのほか、任意のシェルスクリプトやWindowsのバッチコマンドを実行することができる。Jenkinsの生みの親は川口耕介英語版である[3]。JenkinsはMITライセンスでリリースされている[4]

ビルドは、バージョン管理システムでのコミット、cronのようなメカニズムによるスケジューリング、特定のビルド URLのリクエストなど、さまざまな方法でトリガーすることができる。また、キュー内の他のビルドが完了した後にトリガーすることもできる。Jenkinsの機能はプラグインで拡張することができる。

JenkinsプロジェクトはもともとHudsonという名前で、プロジェクトをフォークしてプロジェクト名の権利を主張していたOracleとの論争の末に改名された。OracleのフォークであるHudsonは、Eclipse Foundationに寄付される前に一時期開発が続けられた。OracleのHudsonはメンテナンスが終了し、2017年2月に廃止されたと発表された。

概要[編集]

ソフトウェアを複数の組織で連携して開発する場合、特定のソフトウェアに加えた変更が、他のソフトウェアの品質に悪影響を及ぼし得る (特定のソフトウェアがビルド出来なくなる等)。短期間内にこれらの問題を検出し、ソフトウェアを高品質に保つためのツールが求められていた。

Jenkinsは、ソフトウェア開発向けに継続的インテグレーションサービスを提供しており、Apache TomcatなどのServletで動作しているサーバベースシステムである。CVSSubversionGitMercurialPerforceClearcaseといったバージョン管理システムツールに対応し、Apache AntApache Mavenにおける任意のシェルスクリプトやWindowsバッチコマンドといったプロジェクトを実行することが出来る。おもなJenkins開発者には川口耕介英語版がおり[5]MIT Licenseで公開されているフリーソフトウェアである[6]

歴史[編集]

このプロジェクトはHudsonからフォークされた。オラクルが2010年12月にHudsonの商標を登録したことによるものである[7]

2007年頃このプロジェクトはCruiseControlや他のオープンソース構築サーバに対する人気のある代替として登場した[5][8]。2008年5月のJavaOneカンファレンスでDuke's Choice Award開発者ソリューション部門を受賞した[9]。2011年、開発者の川口耕介英語版はこのプロジェクトにおける自身の働きを讃えられGoogle–O'Reilly Open Source Award英語版を受賞した。

Hudson[編集]

Jenkinsは当初Hudsonプロジェクトが開発していた。2010年11月頃、スチュワードシップとコントロールがオラクルの下にあるという疑問が顕在化したことでHudsonコミュニティに根本的な問題をもたらした[10]。プロジェクトの主要メンバーとオラクル間の交渉が行われ、Hudsonの名の商標登録という重大な問題点に関して多くの合意分野があったものの[11]、結果、2011年1月11日にプロジェクト名をHudsonからJenkinsに変更するかどうか投票を呼びかけ[12]、Jenkinsプロジェクトを立ち上げる提案は同月29日にコミュニティの投票において圧倒的多数で承認された[13][14]。同年2月1日、オラクルはHudsonの開発を継続とJenkinsを名称の変更ではなくフォークとみなす意思を示した[15]

プラグイン[編集]

Jenkinsに対応するプラグインはJavaプロジェクトの純粋なビルドツールを超える形でJenkinsを拡張している[16]。プラグインはほとんどのバージョン管理システムとバグデータベースと共にJenkinsに統合される形になっている。多くのビルドツールはそれぞれのプラグインを通して対応している。またプラグインはJenkinsの外見を変えたり、新たな機能を追加することもできる。

ビルドは数種類のフォーマット(JUnitはプラグインを通してアウトオブボックスなどに対応している)でテストレポートを生成でき、Jenkinsでレポートを表示したりトレンドを生成したりグラフィカルユーザインタフェース内でそれらを表現する事が出来る。

脚注[編集]

  1. ^ Jenkins 1.396 released, The first release of Jenkins is posted, Kohsuke Kawaguchi
  2. ^ What's new in 2.434 (2023-11-28)”. 2023年12月2日閲覧。
  3. ^ Dan Dyer. “Why are you still not using Hudson?”. 2008年5月21日閲覧。
  4. ^ Kawaguchi, Kohsuke. “Use Hudson: License”. 2009年2月7日時点のオリジナルよりアーカイブ。2011年1月30日閲覧。
  5. ^ a b Dyer, Dan (2008年5月9日). “Why are you still not using Hudson?”. New Adventures in Software. uncommons.org. 2008年5月21日閲覧。
  6. ^ Kawaguchi, Kohsuke, et al. “Use Hudson: License”. 2011年1月30日閲覧。
  7. ^ Blewitt, Alex. “Hudson Renames to Jenkins”. InfoQ. 2011年2月8日閲覧。
  8. ^ Jay R. [user name]; Jeffery Frederick, Jonik, et al [user names]. “What is the difference between Hudson and CruiseControl for Java projects?”. Stack Overflow. 2011年1月17日閲覧。
  9. ^ Duboscq, Geneviève (2008年). “2008 JavaOne Conference: Duke's Choice Awards Winners for 2008”. 2008 Java One Conference. java.sun.com. 2008年5月21日閲覧。
  10. ^ Who's driving this thing?”. 2011年1月31日閲覧。
  11. ^ Hudson Process Discussion Summary”. 2011年1月31日閲覧。
  12. ^ Bayer, Andrew (2011年1月11日). “Hudson's future”. Jenkins CI: A Jenkins community resource. 2011年1月11日閲覧。
  13. ^ Bayer, Andrew (2011年1月29日). “Rename Vote Results”. Hudson-dev Google Group. 2011年1月29日時点のオリジナルよりアーカイブ。2011年1月29日閲覧。
  14. ^ Bayer, Andrew (2011年1月29日). “Jenkins!”. 2011年1月30日閲覧。
  15. ^ The Future of Hudson”. Hudson-dev mailing list. 2011年2月2日閲覧。
  16. ^ Plugins - Jenkins

外部リンク[編集]