パラメータを受け取りたい
Jenkins側でこんな感じにジョブにパラメータを設定してあげると
パラメータ付きビルドからパラメータを入力できるようになります。
パラメータを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だとわかりずらいけど
Blue Oceanというプラグインを見ると一目で並列処理されている事がわかります。
特定の条件化では処理をスキップさせたい
こんな感じのパラメータを用意してあげて
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"
}
}
}
}
}
}
ビルドしたものを成果物として取得したい
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'
}
}
}
}