1. ホーム
  2. jenkins

[解決済み] Jenkinsです。パイプラインステージで変数が定義できない

2022-06-26 05:51:48

質問

宣言的なJenkinsパイプラインスクリプトを作成しようとしていますが、単純な変数宣言に問題があります。

以下は私のスクリプトです。

pipeline {
   agent none
   stages {
       stage("first") {
           def foo = "foo" // fails with "WorkflowScript: 5: Expected a step @ line 5, column 13."
           sh "echo ${foo}"
       }
   }
}

しかし、こんなエラーが出ます。

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 5: Expected a step @ line 5, column 13.
           def foo = "foo"
           ^

Jenkins 2.7.4とPipeline 2.4を使っています。

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

Jenkins Pipelines の Declarative モデルでは、構文のサブセットを制限しており、その構文は stage ブロックで使用できる構文に制限があります。 詳細については構文ガイドを参照してください。 . この制限を回避するには、ステップを script { ... } ブロックで囲むこともできますが、その場合、構文やパラメータなどの検証は script ブロック内での構文やパラメータなどの検証ができなくなります。