web-dev-qa-db-ja.com

Jenkins Declarative PipelineでPATHを設定する方法

Jenkinsスクリプトパイプラインでは、PATH環境変数を次のように設定できます。

node {
   git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
   withEnv(["PATH+MAVEN=${tool 'M3'}/bin"]) {
      sh 'mvn -B verify'
   }
}

ここで説明されているPATH + MAVENに注意してください https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/ #code-withenv-code-set-environment-variables

設定する環境変数のリスト。それぞれVARIABLE = valueまたはVARIABLE =の形式で定義されている変数を設定解除します。また、構文PATH + WHATEVER =/somethingを使用して、$ PATHに/ somethingを追加することもできます。

しかし、環境構文を使用して宣言パイプラインでそれを行う方法を見つけられませんでした(ここで説明されているように: https://jenkins.io/doc/pipeline/tour/environment )。

environment {
    DISABLE_AUTH = 'true'
    DB_ENGINE    = 'sqlite'
}

理想的には、すべてのステージでカスタムツールを使用するようにPATHを更新します。

23
Vincent

environmentセクションで可能です:

pipeline {
  agent { label 'docker' }
  environment {
    PATH = "/hot/new/bin:$PATH"
  }
  stages {
    stage ('build') {
      steps {
        echo "PATH is: $PATH"
      }
    }
  }
}

詳細については、 この回答 をご覧ください。

39
Vadim Kotov

回避策として、環境変数を定義し、shステップで使用できます。

pipeline {
    environment {
        MAVEN_HOME = tool('M3')
    }

    stages {
        stage(Maven') {
           sh '${MAVEN_HOME}/bin/mvn -B verify'
        }
    }
}
3
Dan Berindei

次のリンクを確認してください。これは、ツールの構成方法を説明しています。宣言的なパイプラインを使用することは少し異なりますが、全体的に理解しやすいです。

declarative-maven-project

2
Wim Ederveen

パイプラインのツールセクションの使用は、プリインストールされたグローバルツールに対してのみ許可されています。一部のツールはプラグインによって提供されますが、存在しない場合は、パイプラインツール宣言を介して環境設定を使用することはできません。

私は間違っていると思います!

1
PRF