1
私はカスタム・ステップを作成したい:https://jenkins.io/doc/book/pipeline/shared-libraries/#defining-custom-steps宣言型パイプラインのカスタムステップを定義できますか?ここで説明するよう
スクリプトは次のようになります。
// vars/buildPlugin.groovy
def call(body) {
// evaluate the body block, and collect configuration into the object
def config = [:]
body.resolveStrategy = Closure.DELEGATE_FIRST
body.delegate = config
body()
...
そして、私はスクリプトパイプラインでこのようにそれを実行することができます。
buildPlugin {
name = 'git'
}
これは、宣言的なパイプラインでは、スクリプトブロックでラップする必要があることを意味します。
script {
buildPlugin {
name = 'git'
}
}
カスタムスクリプトとGroovyクラスがたくさんあり、パイプラインのスクリプトブロックでそれらをラップしなければならないものが混乱します。宣言型パイプラインがスクリプト{}なしで使用できるように、Groovyスクリプトを書くことはできますか?あなたがここにscript
ラッパー
せず、宣言piplineでも、それを使用することができます
これを実行しようとすると、Jenkinsfileは検証に失敗します。グローバルなvarとライブラリの呼び出しを 'script {}'の中に置くことは現在厳しい要求です。 Jenkinsの宣言構文は、Jenkinsfileに多くの混乱を招くように見えるという意見に同意します。 –
'script'なしでこれを試しましたか?どのエラーが出ましたか? [この記事](https://jenkins.io/blog/2017/02/15/declarative-notifications/)によれば、これを行うことができるはずです。 –
@VitaliiVitrenkoこの記事はこの前に書かれていました:https://issues.jenkins-ci.org/browse/JENKINS-42360 –