こんにちは、グローバルスタジオでクライアントエンジニアをしている福岡です。
最近業務でJenkinsのPipelineJobに触れる機会があったので今回はJenkinsのPipelineJobの導入について簡単にご説明したいと思います。
PipelineJobとは?
Pipelineは様々な処理をワークフローとして定義し、一連の処理を可視化し分かりやすくすることができるJenkinsJobです。
もとはプラグインとして開発されていたものですがJenkins2.0から標準サポートになりました。
Pipelineジョブの導入手順
それではPilelineジョブ導入についてご説明します。
環境
jenkins ver.2.237
JenkinsFileの文法はScriptedPipelineを使用しています。
1.Jobの新規作成
まずはJenkinsのダッシュボード画面から新しいJobの作成をクリックします。
2.itemnameを決めて、Piplineを作成する
次にitemnameを決め、Job一覧の中からパイプラインを選択しOKボタンを押すとPiplineJobが作成されます。
3.スクリプトの作成
PipelineJobでは設定の入力で「パイプライン」という項目があります。
こちらはビルドの一連の流れをJenkinsFileと呼ばれるGroovyのスクリプトで記述することができます。
また、パイプライの定義の欄で「Pipline script from SCM」を選択するとSCMからJenkinsFileを参照することができます。
今回はStageViewの可視化確認だけなので下記の簡単なスクリプトを用意しました(urlやパスは各自の環境ごとに設定してください)
node("master")
{
stage("git pull")
{
git url : "https://github.com/*****/*****.git" , branch "master"
}
stage("deploy")
{
sh "deploy/deploy.sh"
}
stage("slack notify")
{
sh "slack/notfy_slack.sh"
}
}
こちらのスクリプトに使われているPipeline主要コマンドを紹介したいと思います。
コマンド | 内容 |
---|---|
Node | どこのslaveで実行するかの設定ができます。指定のslave以外で実行とかも設定できます |
Stage | ビルド、テスト、デプロイなどの処理を記述できます |
4.ビルド
先ほどのスクリプトでビルドすると・・・
このようにJobの状態画面にStageViewが表示され、GitPullからSlackの通知までの一連流れが可視化されるようになりました。
まとめ
以上PiplineJobの導入手順でした。
所感ですがフリースタイルジョブと比べ、複雑になりがちなビルドの流れをスクリプトとしてバージョン管理できるようになったり、ビルドの一連の流れが可視化され管理しやすくなっているのは非常に便利だなと感じました。
また、今回紹介した内容以外にもDeclarativePipelineという文法でスクリプトを記述したり、Stageごとに人の入力を受け付ける仕組み等色々と実装できたりするので是非PipelineJobで快適なJenkinsライフを!