Jenkins
Jenkinsプラグイン

Jenkinsをとりあえず使う際のメモ

承認ワークフロー等を作るときにはJenkins2のPipeline(旧Workflow Plugin)を使いますが、ここではワークフローではなく通常のジョブを作る際の設定についてのメモを記載していきます。

全体的なメモ

  • Windows版はユーザーに注意
    Linuxの場合はシェルスクリプトからユーザーを変更するのは楽ですが、Windowsの場合は管理ツールのサービスのJenkinsのプロパティのログオンタブからユーザーを設定する必要があります。これを行わないと権限で怒られたりします。

  • WindowsバッチのPAUSE
    ビルドのWindowsバッチからPAUSEの入っているバッチを実行するとPAUSEは無視されます。
    groovyからバッチを呼び出すとPAUSEは無視されません。(groovyからだとずっと止まるので注意)

  • ジョブのAPIが便利
    JENKINS_URL/JOB_NAME/BUILD_NUMBER/api/json

  • safeRestartが便利
    JENKINS_URL/safeRestart

Pluginメモ

  • Role Strategy Plugin
    https://wiki.jenkins.io/display/JENKINS/Role+Strategy+Plugin
    ユーザー毎に使用できる機能やviewを制限するために使用します。(設定はJenkinsの管理画面)

  • Build Blocker Plugin
    https://wiki.jenkins.io/display/JENKINS/Build+Blocker+Plugin
    競合するジョブがある場合に、競合するジョブが同時に実行されないように制限するために使用します。(設定は各ジョブの設定画面)

  • Build Pipeline Plugin
    https://wiki.jenkins.io/display/JENKINS/Build+Pipeline+Plugin
    Aジョブ⇒Bジョブ⇒Cジョブといったようにジョブを順序付けて実行するものを作ると現在の状況が分かりにくくなるために視覚的にわかりやすくVIEW表示するために使用します。(設定はVIEWの設定画面)(例:使用ブランチ設定ジョブ⇒ビルドジョブ⇒テストジョブ⇒デプロイジョブ)

  • Groovy plugin
    https://wiki.jenkins.io/display/JENKINS/Groovy+plugin
    windowsバッチやshellだけでは遠回りな実装になってしまったり実装できない場合のためのスクリプトとして使用します。(設定はJenkinsの管理画面のシステム設定しておき、各ジョブのビルドの設定でgroovyを使うドロップダウンで使用 ※その際はsystemのgroovyと間違わないようにする・使用するgroovyのバージョンを忘れずに選択する)

  • Groovy Postbuild Plugin
    https://wiki.jenkins.io/display/JENKINS/Groovy+Postbuild+Plugin
    ビルド後にビルドの設定のdescription等を設定することでビルド履歴から何のパラメータを渡したビルドなのか等がわかるようにするためにしようします。manager.buildで直接オブジェクトに触れるので便利です。(設定は各ジョブの設定画面 ビルド後の処理)
    http://javadoc.jenkins-ci.org/hudson/model/Build.html
    例)ビルドパラメーター(例 BUILD_PARAMETER)をビルド履歴に表示

def buildParameter = manager.build.buildVariables.get("BUILD_PARAMETER")
manager.build.setDescription(buildParameter)

Groovyメモ

  • Groovyでビルドパメータを取得
System.getenv("パラメータ名")
  • Groovyからコマンド実行(windows linux)
// stdout.txtに標準出力し実行結果を取得
def resultCode = 'cmd /c コマンド > stdout.txt'.execute().waitFor()

// 標準出力をそのままコンソールに出す
println 'cmd /c コマンド'.execute().text
  • Groovyからビルドを終了させる
System.exit(0)
System.exit(1)