Jenkins:マルチブランチパイプラインとパラメータ付きパイプライン

 


✅ 1. マルチブランチパイプライン(Multi-Branch Pipeline)

◉ ブランチって何?

  • Gitでは「ブランチ(Branch)」とは、作業用のコピーのようなもの。

  • master(メインブランチ) は、本番環境で動いている安定したコードが入っている場所。
     → 直接変更するのはNG!

  • 新しい機能や修正は、自分専用の新しいブランチを作って、そこで作業する。

  • 作業が終わったら、masterにマージ(統合)する。

📝 例え話
「master」は完成された料理。
「ブランチ」はそのレシピのコピーで、あなたが調味料を試してるところ。
美味しくできたら「master」に戻す感じ。


◉ Jenkinsでマルチブランチパイプラインを作る流れ

  1. 新しいジョブを作成(New Item)

    • 名前は multi-branch

    • タイプは「マルチブランチパイプライン」

  2. GitリポジトリのURLを貼り付ける
    Jenkinsが自動でブランチを探してくれるようになる。

  3. Jenkinsfileのパスを設定
    例:jenkins/Jenkinsfile

  4. スキャンの頻度を設定(Scan Triggers)
    → 2分ごとがちょうど良い(実務で多く使われている設定)

  5. 新しいブランチをGitHubで作成
    例:new-pipeline という名前のブランチ

  6. Jenkinsで「今すぐスキャン」をクリックすれば、すぐに新ブランチを認識してくれる。

  7. Jenkinsfileを変更して再テストしたいときは、Replay機能が便利(ただし会社によっては使えない場合も)


✅ 2. パラメータ付きパイプライン(Parameterized Pipeline)

パイプライン実行時に「値」を入力して、動きをカスタマイズできる仕組みです。


◉ パターン①:Boolean(チェックボックス)

  • true / false(オン・オフ) の値を渡せる。

  • 例えば「このサービスをデプロイしますか?」といった選択肢に使える。

parameters {
booleanParam( name: 'myBoolean', defaultValue: false, description: 'Enable service' ) }

使い方(出力)

echo "booleanParam is set to: ${params.myBoolean}"

◉ パターン②:String(文字列入力)

  • ユーザーが自由に文字を入力できる。

  • 例:「どの環境にデプロイしますか?」に「test」や「prod」と入力させる。

parameters {
string( name: 'deployEnv', defaultValue: 'test', description: 'Which environment to deploy in' ) }
echo "String is set to: ${params.deployEnv}"

◉ パターン③:Choice(選択式・ドロップダウン)

  • 決まった選択肢から選んでもらう方式。

  • 曖昧な入力を防げるため、ミスが減る。

parameters {
choice( name: 'deployEnv', choices: ['test', 'dev', 'qa', 'pre-prod', 'prod'], description: 'Which environment to deploy in' ) }
echo "Choice is set to: ${params.deployEnv}"

✅ おまけ:Replayとは?

  • Jenkinsの実行済みジョブから「Replay」を押すと、ブラウザ上でJenkinsfileを編集して再実行できる機能。

  • 小さな修正をすぐテストしたいときに便利。

  • テストが成功したら、コードをJenkinsfileに反映してGitHubに戻せばOK。

前の記事:GitHub リポジトリを Jenkins に連携する

次の記事:Jenkins パイプライン:変数と環境変数