Jenkinsおすすめプラグイン一覧 現在:24選

# Jenkinsおすすめプラグイン一覧
注意事項：
コード例は、scripted Pipelineとdecralative Pipelineの表記が混ざったりします。

## List Git Branch Plugin
gitのブランチリストを取得してきてくれる。
gitのチェックアウトをするわけではない。

https://plugins.jenkins.io/list-git-branches-parameter/

## CopyArtifact Plugin
他のジョブの成果物をコピーしたりする。
超多用。寧ろ必須。

https://plugins.jenkins.io/copyartifact/

## App Center Plugin
ios/android向けのアプリをアップロードしたりするとき使う。
App Center CLIより細かいことはできない。
手軽にアップロードするなら便利。

https://plugins.jenkins.io/appcenter/

## Simple Theme Plugin
jenkinsの色変更とかCSS参照するとき、とりあえず入れとかないとダメ系。

https://plugins.jenkins.io/simple-theme-plugin/

## Timestamper Plugin
見づらいコンソール出力画面に時間を入れる
ただし、pipelineのみにいれられるようになるので注意。

https://plugins.jenkins.io/timestamper/

## Build TimeStamper Plugin
BUILD_TIMESTAMPとかで変数が取れる。
DATEの形式を変更することで新たに変数宣言も可能。
参考：https://stackoverflow.com/questions/24226862/how-to-get-build-time-stamp-from-jenkins-build-variables

https://plugins.jenkins.io/build-timestamp/#documentation

## ThinBackup Plugin
バックアップをフルで取れたり、いつとるかなど設定。
ファイルのフィルタが可能。

https://plugins.jenkins.io/thinBackup/

## Job Configuration History Plugin
jenkinsの設定変更や差分が見れる。
ローカル保存などの指定も可能。

https://plugins.jenkins.io/jobConfigHistory/

## Pipeline Configuration History Plugin
もっとpipelineのスクリプトの差分チェックに特化したPlugin
便利。

https://plugins.jenkins.io/pipeline-config-history/

## Pipeline Utility Steps Plugin
ZIP化してくれる。
ついでに成果物保存もしてくれる。
yamlも簡単に読める。
yamlファイルも簡単に読める。

```
pipeline {
    agent {
        node {
            label 'lsrv9557.linux.rabobank.nl'
            customWorkspace '/appl/jenkins/workdir'
            datas = readYaml file: "manifest.yml"
        }
   }
```

引用例：https://stackoverflow.com/questions/51538516/how-to-parse-yaml-files-in-jenkins-pipeline-using-readyaml-method-from-the-jenki

https://plugins.jenkins.io/pipeline-utility-steps/

## Rebuilder Plugin

同じジョブを再度回したいときとかに有用。超便利。
パラメーターも編集してからリビルドできる。

https://plugins.jenkins.io/rebuild/

## Build Trigger Badge Plugin
ビルドを誰が回したのか自動実行か、等見れる

https://plugins.jenkins.io/buildtriggerbadge/

## Build user vars Plugin
BUILD_USERでユーザー名の情報が取れる。

https://plugins.jenkins.io/build-user-vars-plugin/

## Blue Ocean Plugin
なんだかおしゃれにGUIでぽちぽちパイプラインが作れる。
細かい設定は、従来のページで編集。

https://www.jenkins.io/projects/blueocean/

https://plugins.jenkins.io/blueocean/

## Confluence Publisher Plugin
コンフルエンスと連携して、artifactをアップロードしたり、ページ編集したりできる。
アカウント登録は、jenkinsの管理で登録。
space名/ページ名などを入力。
https://confluenceのページ/display/Space名/Page名 みたいな感じ。
大変有用だが、アップロードした時に、コメントが勝手に入るのがウザイ。
（消せないのかな）

https://plugins.jenkins.io/confluence-publisher/

## Log Parser Plugin
ログの出力が黒一色で見づらいな、というときに、
error/info/warningなどカテゴリごとに分類可能。
そのカテゴリごとに、クリックするとコンソールの文章にも一っ飛び。
正規表現で分類する。
パイプラインだとたまに動かない場合があるっぽい。
txtでルール定義、一行ずつ記載。

```
error /(?i)^error: /
warning /warning: /
info /\[Pipeline\] /
info /\-\-\-/
```
みたいな感じで書く。javaの正規表現を使う。だいぶみやすくなる。

https://plugins.jenkins.io/log-parser/

## disk usage Plugin
jenkinsマシンの大体の容量確認が可能。
フリースタイルジョブの場合だけ現状使える。

https://plugins.jenkins.io/disk-usage/

## credentials binding Plugin
マシン依存のパスワードだったり、ユーザーID/PWを**** でjenkinsジョブのログで表示するためのもの


https://www.jenkins.io/doc/pipeline/steps/credentials-binding/

```
withCredentials([usernameColonPassword(credentialsId: 'mylogin', variable: 'USERPASS')]) {
    sh '''
      set +x
      curl -u "$USERPASS" https://private.server/ > output
    '''
  }
```

```
withCredentials([string(credentialsId: 'mytoken', variable: 'TOKEN')]) {
    sh '''
      set +x
      curl -H "Token: $TOKEN" https://some.api/
    '''
  }
```

## monitoring plugin
jenkinsのマシンの体調管理。メモリ使用量等。

https://plugins.jenkins.io/monitoring/

## Google Play Android Publisher
Androidのアプリ、aabをgoogle play consoleの内部テストにアップロードする方法。
動画でやり方が載っている。
google play console側の設定が若干ややこしい。
jenkins側は、google play consoleから発行されたp12 keyを読み込んだりするだけ。

<iframe width="790" height="444" src="https://www.youtube.com/embed/txdPSJF94RM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

あとはpipelineであげるコード書くだけ。
aabの容量は150MB以上超えるとあげられなくなるという注意書きがある。
（実質200MBぐらいまで許容だが、データ整理は適宜必要）
```
androidApkUpload filesPattern: output_dir + "/" + app_name +".aab",
googleCredentialsId: "googlePlayCredentialsId",
recentChangeList: [
                        [
                            language: 'ja-JP',
                            text: 'テキスト'
                        ]
                    ],
                   releaseName: versionName,
                   rolloutPercentage: '0',
                   trackName: 'internal'
```

https://plugins.jenkins.io/google-play-android-publisher/

## Parameterized Trigger Plugin
環境変数のエキスポートができる。

https://plugins.jenkins.io/parameterized-trigger/

## ssh agent plugin
git pushをする時にtokenをわざわざマシンに入れたくない時に使う。
tokenなんか入れたくない・・というめんどくささの回避。
※ gitは、pullなりcheckoutはpipelineのpluginが充実しているが、pushだったり、commitするのにsh()を使わないと現状できないというもどかしさがついて回る。

```
withCredentials([gitUsernamePassword(credentialsId: 'gitCredentialsId',
                    gitToolName: 'git-tool')]) {
                        sh 'git push -u origin master'
                    }
```

https://plugins.jenkins.io/ssh-agent/

## Slack Notification Plugin
今のご時世超絶必須なPluginのことを忘れてました。
いろんな通知をSlackに流すためのプラグインです。
Botを使うことで通知アイコンを変更したり、通知の見た目も色々変えることができ有用です。
Slackのpythonとか全部いらない。
見た目のやり方についてはどこかで書く。

基本はこんな感じの使い方。
メンションだってできる。@つけたりしてね。
```
slackSend channel: failed_notify_channels,
                   message: notify_message,
                   color: "danger"
```

https://plugins.jenkins.io/slack/

## Jenkins Configuration as Code Plugin
Jenkinsの設定をコード化できる。
有用そう（だが使ったことはない）
きっと有用そう（使ってみようかと思う）

https://www.jenkins.io/projects/jcasc/#:~:text=Manage%20configuration%20as%20human%2Dreadable%20config%20file(s)&text=Jenkins%20Configuration%20as%20Code%20provides,in%20a%20fully%20reproducible%20way.

## Login Page Theme Plugin

ログインアイコンを変えたりできる。

https://plugins.jenkins.io/login-theme/

https://stackoverflow.com/questions/58102377/how-to-change-default-logo-for-jenkins