jenkinsのサンプル集
はじめに
いつもJekinsを書き始めるときに困るので、サンプルをまとめます。
基本の形
pipeline {
agent any
stages {
stage("test")
steps {
echo 'jenkins test'
}
}
}
agentは実行するサーバーを指定。anyだと特に指定せずに実行する。
stagesの中に処理を記載する。
stageが処理のひとかたまり、stepに処理を記載しする。
Gitからのチェックアウト
stage("clean up directory") {
// /var/lib/jenkins/workspeace を削除
steps {
deleteDir()
}
}
stage('cheackout') {
// Gitからチェックアウト
steps {
// privateリポジトリを使う時は認証情報の記述が必要
checkout([$class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false,
extensions: [],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: '<jenkinsで設定したcredential>', url: '<GitのURL>']]
])
}
}
余計なものを削除するため、チェックアウト前にdeleteDir()でディレクトリをきれいにしてから、チェックアウトする。
じゃないとコミット時に余計なものをコミットしてしまい。取り返しのつかない自体にもなりかねないため。
本例ではマスターからクローンを実施。
Credentialsの指定
stage('mysql login') {
// vCenterにVMdeployのplaybookを実行
steps {
// 認証情報の取得
withCredentials(
// 認証情報
[usernamePassword(credentialsId: '<jenkinsで設定したcredential>', usernameVariable: '<ユーザー名を格納する任意の変数名A>',passwordVariable: '<パスワードを格納する任意の変数名A>')]
)
{
sh 'mysql -u <ユーザー名を格納する任意の変数名A> --password=<パスワードを格納する任意の変数名A>'
}
}
}
withCredentialsを使用して、credentialsに登録しいる認証情報を変数として利用できる。
ログもマスクされて表示される。2つ指定する場合は配列で指定する。
- 2つ指定する場合
withCredentials(
// 認証情報A
[usernamePassword(credentialsId: '<jenkinsで設定したcredential>', usernameVariable: '<ユーザー名を格納する任意の変数名A>',passwordVariable: '<パスワードを格納する任意の変数名A>'),
// 認証情報B
usernamePassword(credentialsId: '<jenkinsで設定したcredential>',usernameVariable: '<ユーザー名を格納する任意の変数名B>',passwordVariable: '<パスワードを格納する任意の変数名B>')]
)
最後に
JenkisのPipelineって公式のサイトが個人的に読みにくいと感じる。
またプラグインが豊富にあるため、書き方が色々ある。
なので、もっと良い書き方がある場合は教えてください。