Jenkinsのプラグインはほとんど要らない


Jenkinsの基本的な流れ

JenkinsのWebアプリ(master)とビルドサーバー(masterまたはslave)で構成する

masterはLinux上に構築されることが多いと思う。
slaveはWindows, Linux, Macなど…要するにJavaが動けばいい。
pipeline scriptとGroovyはslave側で処理を行う。

ビルドが通る環境をあらかじめ構築しておき、そのslaveでビルドするためのscriptを書く

Jenkinsは「何でもプラグイン」な感じで、ほとんどプラグインで動かす設計思想。

ここまではいいけど、無数にあるプラグインが曲者。
例えば、GitのプラグインはGlobal Tool Configurationで実行ファイルの絶対パスを指定するようになっていて、agentに関係なく同じパスで動かそうとするけど、分散ビルドなのに意味があるの?この作り。

slaveで動くプログラムをJenkinsにキックさせるだけの作りがシンプル

標準出力されたものは全部Consoleに出力および記録されるから、わざわざGroovyで書き直すだけ労力の無駄だと思う。
どうせ、ビルドの基本パスは成功か失敗しかない。

あと、JenkinsのGroovyサポートは中途半端な感じがする。静的解析を対応したものは、Jenkinsが機嫌を損ねてエラーを吐くとか…Groovyをサポートしきれていない。

頑張ってプラグインを使うより、slave内で動くプログラムを優先して使った方が幸せになれるし、労力の無駄を省ける。