LoginSignup
10
9

More than 5 years have passed since last update.

Jenkinsジョブを管理するのが辛くなって今更ながらJenkisfile(Jenkins Pipeline)に手を出してみた。

Jenkinsfileとは

  • JenkinsのPipelineという仕組みを使ってジョブをコード化するためのファイル
  • groovyで記載する。
  • Declarative PipelineScripted Pipelineという2つの種類がある
    • Declarative Pipelineはジョブ設定(カスタムワークスペースの場所とか)+ジョブの内容が書ける
    • Scripted Pipelineはスクリプトチックに書ける

Declarative Pipelineの中でScripted Pipelineの書き方もできるので、基本的にはDeclarative Pipelineで書いたほうが良い。

Jenkinsfileサンプル

#!groovy
pipeline {
    // 実行ノードの設定。ここでdockerとか指定できる。
    agent any
    // ジョブ設定。実行タイミングとかも設定できる。
    options {
        retry(3)
    }
    // ジョブの内容
    stages {
        stage('checkout') {
            steps {
                checkout scm
            }
        }
        stage('build') {
            steps {
                // ビルド処理
                echo 'hello'
            }
        }
    }
    // 終了処理
    post {
       // 必ず実行
       always {
           deleteDir()
       }
       // ジョブ成功時のみ
       success {
           slackSend color: "good", message: "${env.JOB_NAME} - #${env.BUILD_NUMBER} ${currentBuild.durationString} (<${env.BUILD_URL}|Open>)"
       }
       // ジョブ失敗時のみ
       failure {
           slackSend color: "danger", message: "${env.JOB_NAME} - #${env.BUILD_NUMBER} ${currentBuild.durationString} (<${env.BUILD_URL}|Open>)"
       }
       // 前回のジョブと結果が違う場合(成功 -> 失敗)とかの処理も設定できる
   }
}
// ここに関数とか定義して使うもよし

Jenkinsfileの管理

個人的には以下のような管理をしている

管理方法 対象
ソースのリポジトリ内で一緒に管理 リソースがリポジトリ内で完結しているジョブ
ジョブ専用のリポジトリを作って管理 複数の成果物を使用するジョブ

入れた方が良いプラグイン

プラグイン 概要
Blue Ocean 見た目をかっこよくしてくれるやつ。これ入れたら必要なのほとんど入る
File Operations ファイル操作系の便利関数を提供してる

使ってみた感想

  • Jenkinsサーバーのお引越しやソースコード管理システムのお引越しが発生したときにめちゃ楽。
  • プラグインの恩恵がでかい。BitBucket Team/Projectジョブを作るだけでプロジェクト配下全部のリポジトリのジョブ勝手に作ってくれるので、手動で作るジョブの数が激減。(GitHub Organizationジョブも多分おんなじ感じだと思う。)
  • Jenkinsfileデバッグ用ジョブ作らないと無駄コミットが発生しまくる
  • ビルド環境もdocker使ってコード化したほうが良い(ジョブよりもビルド環境のほうが暗黙知が多い)

参考

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9