【じぇんきんす】

Jenkins とは?

最終更新:
💡 CI/CDの「老舗」自動化サーバー

ソフトウェアのビルド・テスト・デプロイなどを自動化するオープンソースの自動化サーバー。自分でサーバーを用意して動かし、プラグインで機能を拡張する。

📌 このページのポイント
Jenkins CI/CDパイプライン コード プッシュ ビルド コンパイル テスト 自動テスト ステージング 検証環境 デプロイ 本番反映 Jenkins サーバー パイプライン定義 プラグイン ジョブスケジュール 自動実行 オープンソースのCI/CDツール。豊富なプラグインでカスタマイズ可能
Jenkinsのイメージ
ひよこ ひよこ
JenkinsとGitHub Actionsの違いは?
ペンギン先生 ペンギン先生
Jenkinsは自分でサーバーを用意して、Jenkins本体やプラグインの更新も自分たちで管理するんだ。GitHub ActionsはGitHubのサービスで、GitHubが管理する実行環境(GitHub-hosted runner)を使えばマシンの保守はGitHub側がやってくれる。ただGitHub Actionsでも自前の実行環境(self-hosted runner)を使うなら、そのOSやソフトの更新は自分の担当になるよ。
ひよこ ひよこ
Jenkinsfileって何?
ペンギン先生 ペンギン先生
パイプラインの定義を書くテキストファイルで、プロジェクトのリポジトリにコミットして管理できるよ。書き方にはDeclarative Pipeline(宣言的)とScripted Pipeline(スクリプト的)の2つがあるんだ。Declarativeは読み書きしやすいように作られていて、ScriptedはGroovyで作られた汎用的なDSLだよ。
ひよこ ひよこ
Jenkinsの運用で大変なことは?
ペンギン先生 ペンギン先生
Jenkins本体とプラグインのセキュリティ更新を追いかけること、ビルドを実行するエージェントの台数や性能をやりくりすることなどだね。プラグインは便利だけど、入れるほど更新や組み合わせの確認が増えるから、必要なものに絞るのがコツだよ。
ひよこ ひよこ
Jenkinsからほかのツールへの移行は簡単?
ペンギン先生 ペンギン先生
パイプラインの書き方が違うから、JenkinsfileやプラグインでやっていたことをGitHub Actionsなどの書き方に置き換える作業が必要だよ。ジョブの数が多いと手間がかかるから、小さなパイプラインから順に移すなど計画的に進めようね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Jenkins」って出てきたら「自分で運用する、歴史あるCI/CD自動化サーバー」と思えればだいたいOK!
📖 おまけ:英語の意味
「Jenkins」 = 英国の執事を思わせる名前
💬 もとはHudsonという名前だったけど、Oracleが名前の商標を持っていたため2011年に改名したんだ。Hudsonと同じく「英国の執事」らしい響きの名前としてJenkinsが選ばれたよ

参考資料

← 用語集にもどる