
【Jenkins】 Pipelineを学ぶ前に知っておいて欲しいこと
はじめに
こんにちは株式会社TIELECのタカシユウトです。 この記事ではJenkinsのパイプラインとは何かについて紹介します。 初めてJenkinsのパイプラインを使う人の理解に役立つのではないかと思います。
Jenkins Pipelineとは
Pipelineは様々な処理をワークフローとして定義し、一連の流れをわかりやすくすることができるJenkinsのJobです。もともとはプラグイン (workflow-aggregator) として開発されていたものですが、Jenkins 2.0から標準サポートされるようになりました。
Jenkins Pipelineは実は2種類の書き方が存在しています。
- Scripted Pipeline
- Declarative Pipeline
この2つの違いについての説明をいたします。
Scripted Pipeline
Scripted Pipeline はGroovyの文法を利用して作成するパイプラインです。 変数や関数の定義などが自由に行えるため、柔軟な表現ができます。 しかし、Groovyの知識を必要とするためやや複雑でした。
Declarative Pipeline
Declarative PipelineではScripted PipelineほどGroovyの知識を必要とせずシンプルに、より分かりやすくワークフローを定義することが可能です。また、必要に応じてScripted Pipelineの柔軟な表現も行えるため、両者のメリットを共に享受することができる構文となっています。
現在ではDeclarative Pipelineが推奨の記法になっています。
Jenkins Pipelineに関する情報を探す際に、昔に書かれたものはScripted Pipelineでの記法で書かれている場合があるので注意してください。
簡単な見分け方
見分け方は簡単です。
nodeのブロックから始まるものはScripted Pipeline
pipelineのブロックから始まるものはDeclarative Pipeline
これだけです。
- Scripted Pipeline
node { //★ "node"から始まるものはScripted Pipeline
stage('Build') {
//
}
stage('Test') {
//
}
stage('Deploy') {
//
}
}- Declarative Pipeline
pipeline { //★ "pipeline"から始まるものはDeclarative Pipeline
agent any
stages {
stage('Build') {
steps {
//
}
}
stage('Test') {
steps {
//
}
}
stage('Deploy') {
steps {
//
}
}
}
}Declarative Pipeline を書くときってGroovyの知識はなくてもいいの?
Groovyの知識がなくてもある程度Pipelineを書くことはできます。
しかし、Pipelineに慣れていってより高度な設計をしたいと思ったときには、Groovyの知識があるとやれることの幅が格段に広がります。
例)
- 変数の中身を動的に書き換えたい。
- オリジナルの関数を定義して呼び出したい。
- 特定の処理をループさせたい。
- 長い処理をオリジナルのステップとしてまとめたい。
など。こういったことをやりたいと思ったときにはやはりGroovyの知識があるとやりやすいです。
※ Groovyのリファレンスはこちらをご覧ください。
まとめ
- Pipelineは様々な処理をワークフローとして定義しすることができるJenkinsのJob。
- 書き方は
Scripted PipelineDeclarative Pipelineの2種類があり、推奨はDeclarative Pipelineの方。 - Groovyの知識は必ずしも必要ではないが理解しているとPipelineでできることの幅が広がる。
関連ページ
おすすめ書籍
もっと深く学びたい方へ
この記事で、Pipelineの概念は理解できたと思います。
でも、「どういうワークフローを設計すべきか」「ステージをどう分割するか」という実践的な判断は、プロジェクトの特性や開発フローによって変わります。
より深い理解のために、こちらの記事もおすすめです:

AI駆動開発の最適な検証サイクルを考える──人間とAI、それぞれの「テストのタイミング」

「なんでこれ選んだんだっけ?」を解決する - ADRという考え方
この記事は役に立ちましたか?

この記事が、何かの整理につながったら
コーヒー1杯分の応援をもらえると嬉しいです。
あなたへのおすすめ
