1. ホーム
  2. jenkins

[解決済み] Jenkinsのスクリプトパイプラインと宣言型パイプライン

2022-10-02 05:50:50

質問

私は、古いスタイルのプロジェクトベースのワークフローを、Jenkins に基づくパイプラインに変換しようとしています。その際 docs という名前の2つの異なる構文があることがわかりました。 scripteddeclarative . 例えば、JenkinsのWebのような declarative のシンタックスリリースが最近(2016年末)行われました。新しいシンタックスリリースがありますが、Jenkinsはまだスクリプトシンタックスもサポートしています。

さて、この2つのタイプはそれぞれどのような場面でベストマッチになるのか、よくわかりません。そこで、果たして declarative はJenkinsパイプラインの未来になるのでしょうか?

この2つの構文タイプについて、考えを共有できる方。

どのように解決するのですか?

Jenkins Pipeline が最初に作成されたとき、Groovy が基盤として選択されました。Jenkins は長い間、管理者とユーザーに同様に高度なスクリプト機能を提供するために、組み込みの Groovy エンジンを搭載して出荷されてきました。さらに、Jenkins Pipelineの実装者は、現在quot;Scripted Pipeline" DSLと呼ばれるものを構築するための強固な基盤がGroovyであることを発見したのである。

Scripted Pipelineは、完全なプログラミング環境であるため、Jenkinsユーザーに非常に多くの柔軟性と拡張性を提供します。Groovyの学習曲線は、あるチームのすべてのメンバーにとって一般的に望ましいものではないので、Jenkinsパイプラインをオーサリングするための、よりシンプルで、より意見の一致した構文を提供するために、Declarative Pipelineが作成されました。

この2つは根本的には同じPipelineのサブシステムです。どちらも耐久性のあるコードとしてのPipelineを実装しており、Pipelineに組み込まれたステップやプラグインによって提供されたステップを使用することができます。共有ライブラリを利用することができます。

しかし、両者が異なるのは構文と柔軟性です。Declarativeは、より厳密で事前に定義された構造でユーザーが利用できるものを制限し、よりシンプルな継続的デリバリーパイプラインのための理想的な選択肢となります。Scriptedは、Pipelineに特化したシステムではなく、Groovy自体で定義されているため、制限はほとんどなく、パワーユーザーやより複雑な要件を持つユーザーにとって理想的な選択となります。宣言型パイプラインは、その名の通り、宣言的なプログラミングモデルを推奨しています。一方、Scripted Pipelineは、より命令的なプログラミングモデルに従っています。

コピー元 構文比較