2
3

More than 3 years have passed since last update.

Jenkins Pipelineの書き方

Last updated at Posted at 2021-04-04

パラメータを受け取りたい

Jenkins側でこんな感じにジョブにパラメータを設定してあげると

スクリーンショット 2021-04-04 15.10.34.png

パラメータ付きビルドからパラメータを入力できるようになります。

スクリーンショット 2021-04-04 15.15.33.png

パラメータをpipelineで取得したいときは「${params.名前}」で取得できます。

Jenkinsfile
pipeline {
   agent any
   stages {
      stage("Hoge") {
         steps {
            echo "Param: ${params.Hoge}"
         }
      }
   }
}

並列処理で実行したい

parallelで囲ってあげればOK

Jenkinsfile
pipeline {
   agent any
   stages {
      stage("Hoge") {
         parallel {
            stage('parallelA') {
               steps {
                  echo "parallelA"
               }
            }
            stage('parallelB') {
               steps {
                  echo "parallelB"
               }
            }
         }
      }
   }
}

JenkinsのデフォルトのStage Viewだとわかりずらいけど
スクリーンショット 2021-04-04 18.50.35.png

Blue Oceanというプラグインを見ると一目で並列処理されている事がわかります。

スクリーンショット 2021-04-04 18.35.54.png

特定の条件化では処理をスキップさせたい

こんな感じのパラメータを用意してあげて

スクリーンショット 2021-04-04 19.26.31.png

スクリーンショット 2021-04-04 19.32.39.png

whenとexpressionを組み合わせる事で実現できます。

Jenkinsfile
pipeline {
   agent any
   stages {
      stage("Hoge") {
         parallel {
            stage('parallelA') {
               when {
                  expression {
                     return "${params.DoJob}".contains('ParallelA')
                  }
               }
               steps {
                  echo "parallelA"
               }
            }
            stage('parallelB') {
               when {
                  expression {
                     return "${params.DoJob}".contains('ParallelB')
                  }
               }
               steps {
                  echo "parallelB"
               }
            }
         }
      }
   }
}

スクリーンショット 2021-04-04 19.29.29.png

ビルドしたものを成果物として取得したい

archiveArtifacts を使うと zip ファイルや jar ファイルなど をアーカイブして、後でJenkinsからダウンロードできるようになります。
zip化は「Pipeline Utility Steps」プラグインをJenkinsにインストールしておけば簡単にできます。

Jenkinsfile
pipeline {
   agent any
   stages {
      stage("Create Hoge Dir") {
         steps {
            sh "mkdir Hoge"
            sh "echo test > Hoge/test.txt"
         }
      }
      stage("Artifact") {
         steps {
            script {
               // Hoge というディレクトリを Fuga.zip としてzip化します
               zip archive: true, dir: 'Hoge', glob: '', zipFile: 'Fuga.zip'
            }
            // test.zip をJenkinsからダウンロードできるようにします。
            archiveArtifacts artifacts: 'Fuga.zip'
         }
      }
   }
}

スクリーンショット 2021-04-24 15.06.13.png

2
3
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
2
3