2017-02-08 4 views
8

をstages`:ここhttps://jenkins.io/doc/book/pipeline/を見た後そのようなDSL方式は `私はジェンキンスのための私の最初のGroovyスクリプトを作成しようとしている

を、私はこれを作成しました:

node { 
    stages { 

    stage('HelloWorld') { 
     echo 'Hello World' 
    } 

    stage('git clone') { 
     git clone "ssh://[email protected]/myrepo.git" 
    } 

    } 
} 

しかし、私は取得しています:

java.lang.NoSuchMethodError: No such DSL method "stages" found among steps

私は何をしないのですか?

また、パスワードをプレーンテキストで書かなくても、自分の認証情報をGitリポジトリに渡すことはできますか?

+0

私の問題はこれの逆でした。 "そのようなDSLメソッドの' steps'のエラーが発生しました –

答えて

23

Scripted PipelineDeclarative Pipelineを混同して混同しています。完全差異はsee hereです。しかし、ショートストーリー:

  • 宣言型のパイプラインは、パイプラインDSL(それは基本的にディレクティブと呼ばれる一工程のみ、引数を持つパイプラインステップ()とパイプラインスクリプトでの新しい拡張機能である、これらのディレクティブは、従うべき特定の構文。この新しいフォーマットのポイントは、それがより厳密で、そのためには、パイプラインに新しいそれらのための簡単でグラフィカルな編集を可能にしなければならない多くの。
  • スクリプトのパイプラインは、高度な要件のフォールバックであるということである。

スクリプトを見てみると、最初にnodeのステップがスクリプト化されたパイプラインからあり、declarative pipelineで定義されたpipelineステップの指示の1つであるstagesを使用します。ですから、できるサンプル書き込み用:だからあなたが進むべき道であることdeclarative pipelineを使用するwan't場合

pipeline { 
    ... 
    stages { 
    stage('HelloWorld') { 
     steps { 
     echo 'Hello World' 
     } 
    } 
    stage('git clone') { 
     steps { 
     git clone "ssh://[email protected]/myrepo.git" 
     } 
    } 
    } 
} 

あなたはscripted pipelineにwan't場合は、書く:

node { 
    stage('HelloWorld') { 
    echo 'Hello World' 
    } 

    stage('git clone') { 
    git clone "ssh://[email protected]/myrepo.git" 
    } 
} 

例えば:段階はブロックスキップ。

+0

宣言パイプラインの例で 'echo'ステップの周りにステップブロックがありません。 – pmr

+0

ですか?私は 'stage( 'HelloWorld')'と 'echo'を持っています... –

+1

はい、' stage {steps {echo}} 'が必要です。 – pmr

関連する問題