Jenkins

Jenkins（ジェンキンス）はフリーでオープンソースの自動化サーバである。ソフトウェア開発のビルド 、 テスト 、およびデプロイに関連する部分の自動化を支援し、継続的インテグレーションと継続的デリバリーを促進する。Apache Tomcatなどのサーブレットコンテナで動作するサーバベースのシステムである。AccuRev、CVS、Subversion、Git 、Mercurial、Perforce 、ClearCase、RTCなどのバージョン管理ツールをサポートしており、Apache Ant、Apache Maven 、およびsbtベースのプロジェクトのほか、任意のシェルスクリプトやWindowsのバッチコマンドを実行することができる。Jenkinsの生みの親は川口耕介（英語版）である。JenkinsはMITライセンスでリリースされている。 ビルドは、バージョン管理システムでのコミット、cronのようなメカニズムによるスケジューリング、特定のビルド URLのリクエストなど、さまざまな方法でトリガーすることができる。また、キュー内の他のビルドが完了した後にトリガーすることもできる。Jenkinsの機能はプラグインで拡張することができる。 JenkinsプロジェクトはもともとHudsonという名前で、プロジェクトをフォークしてプロジェクト名の権利を主張していたOracleとの論争の末に改名された。OracleのフォークであるHudsonは、Eclipse Foundationに寄付される前に一時期開発が続けられた。OracleのHudsonはメンテナンスが終了し、2017年2月に廃止されたと発表された。 ソフトウェアを複数の組織で連携して開発する場合、特定のソフトウェアに加えた変更が、他のソフトウェアの品質に悪影響を及ぼし得る (特定のソフトウェアがビルド出来なくなる等)。短期間内にこれらの問題を検出し、ソフトウェアを高品質に保つためのツールが求められていた。 Jenkinsは、ソフトウェア開発向けに継続的インテグレーションサービスを提供しており、Apache TomcatなどのServletで動作しているサーバベースシステムである。CVS、Subversion、Git、Mercurial、Perforce、Clearcaseといったバージョン管理システムツールに対応し、Apache AntやApache Mavenにおける任意のシェルスクリプトやWindowsバッチコマンドといったプロジェクトを実行することが出来る。おもなJenkins開発者には川口耕介（英語版）がおり、MIT Licenseで公開されているフリーソフトウェアである。 このプロジェクトはHudsonからフォークされた。オラクルが2010年12月にHudsonの商標を登録したことによるものである。 2007年頃このプロジェクトはCruiseControlや他のオープンソース構築サーバに対する人気のある代替として登場した。2008年5月のJavaOneカンファレンスでDuke's Choice Award開発者ソリューション部門を受賞した。2011年、開発者の川口耕介（英語版）はこのプロジェクトにおける自身の働きを讃えられGoogle–O'Reilly Open Source Award（英語版）を受賞した。 Jenkinsは当初Hudsonプロジェクトが開発していた。2010年11月頃、スチュワードシップとコントロールがオラクルの下にあるという疑問が顕在化したことでHudsonコミュニティに根本的な問題をもたらした。プロジェクトの主要メンバーとオラクル間の交渉が行われ、Hudsonの名の商標登録という重大な問題点に関して多くの合意分野があったものの、結果、2011年1月11日にプロジェクト名をHudsonからJenkinsに変更するかどうか投票を呼びかけ、Jenkinsプロジェクトを立ち上げる提案は同月29日にコミュニティの投票において圧倒的多数で承認された。同年2月1日、オラクルはHudsonの開発を継続とJenkinsを名称の変更ではなくフォークとみなす意思を示した。 Jenkinsに対応するプラグインはJavaプロジェクトの純粋なビルドツールを超える形でJenkinsを拡張している。プラグインはほとんどのバージョン管理システムとバグデータベースと共にJenkinsに統合される形になっている。多くのビルドツールはそれぞれのプラグインを通して対応している。またプラグインはJenkinsの外見を変えたり、新たな機能を追加することもできる。 ビルドは数種類のフォーマット（JUnitはプラグインを通してアウトオブボックスなどに対応している）でテストレポートを生成でき、Jenkinsでレポートを表示したりトレンドを生成したりグラフィカルユーザインタフェース内でそれらを表現する事が出来る。 CI/CD ビルド自動化 ^ Jenkins 1.396 released, The first release of Jenkins is posted, Kohsuke Kawaguchi ^ “What's new in 2.434 (2023-11-28)”. 2023年12月2日閲覧。 ^ Dan Dyer. “Why are you still not using Hudson?”. 2008年5月21日閲覧。 ^ Kawaguchi, Kohsuke. “Use Hudson: License”. February 7, 2009時点のオリジナルよりアーカイブ。January 30, 2011閲覧。 ^ a b Dyer, Dan (May 9, 2008). “Why are you still not using Hudson?”. New Adventures in Software. uncommons.org. May 21, 2008閲覧。 ^ Kawaguchi, Kohsuke, et al. “Use Hudson: License”. January 30, 2011閲覧。 ^ Blewitt, Alex. “Hudson Renames to Jenkins”. InfoQ. 8 February 2011閲覧。 ^ Jay R. [user name]; Jeffery Frederick, Jonik, et al [user names]. “What is the difference between Hudson and CruiseControl for Java projects?”. Stack Overflow. January 17, 2011閲覧。 ^ Duboscq, Geneviève (2008年). “2008 JavaOne Conference: Duke's Choice Awards Winners for 2008”. 2008 Java One Conference. java.sun.com. May 21, 2008閲覧。 ^ “Who's driving this thing?”. January 31, 2011閲覧。 ^ “Hudson Process Discussion Summary”. January 31, 2011閲覧。 ^ Bayer, Andrew (January 11, 2011). “Hudson's future”. Jenkins CI: A Jenkins community resource. January 11, 2011閲覧。 ^ Bayer, Andrew (January 29, 2011). “Rename Vote Results”. Hudson-dev Google Group. January 29, 2011時点のオリジナルよりアーカイブ。January 29, 2011閲覧。 ^ Bayer, Andrew (January 29, 2011). “Jenkins!”. January 30, 2011閲覧。 ^ “The Future of Hudson”. Hudson-dev mailing list. 2011年2月2日閲覧。 ^ Plugins - Jenkins ポータル FLOSS Jenkins homepage Jenkins tutorial video Hudson free book Jenkins all-in-one installer, virtual machine and cloud images by BitNami Hudson and CI related articles Jenkins creator Kohsuke Kawaguchi on The Changelog podcast talking about the project origin and name change 7 Ways to Optimize Jenkins/Hudson from founder Kohsuke Kawaguchi