web-dev-qa-db-ja.com

Jenkinsの環境変数を設定する場所

Linux上のMavenを使用してアプリケーションのビルドを自動化するためにJenkinsを使用しています。

Jenkinsで使用できるように、$Java_HOMEなどの環境変数をどこに設定し、$PATHに項目を追加する必要がありますか?

私はいくつかの異なる場所を試しましたが、成功しませんでした。ログイン/非ログイン、インタラクティブ、非インタラクティブなど、シェルジェンキンスがどのような種類のシェルを使用しているかはわかりません。

3
Mark W

これは、グローバルツール構成の完全なシナリオです。 Jenkinsホームページから、Manage Jenkins-> Global Tool Configurationをクリックします。デフォルトのインストールがある場合、このページでは、ビルドサーバーにMavenをインストールするための複数の構成を追加できます。

Global Tool Configuration for Maven

ツールを構成したら、「トップレベルのMavenターゲットを呼び出す」ビルドステップを追加することで、それらをジョブで使用できます。各ジョブに特定のスレーブ/ノードを使用している場合は、各サーバーにインストールする必要があるMavenを選択できます。その後、ジョブが実行されると、Jenkinsが自動的にインストールを管理します。

"Invoke Top Level Maven Targets" Build Step

特にパイプラインには、 Pipeline Maven Integrationプラグイン があります。私はそれを使用していませんが、ドキュメントから、それはあなたが求めていることを行うことができるはずです:

パイプラインプラグインとMavenの統合を提供するには、withMavenステップを使用します。これは、sh mvnまたはbat mvnを呼び出してパイプラインジョブ内で使用するようにMaven環境を構成します。

そして、このブログ投稿 Mavenプロジェクトの宣言的パイプライン は、Mavenでパイプラインを実行するようにJenkinsを構成する良い例です。

2
Michael J

この質問はすでにスタックオーバーフローで質問されており、そこで回答を確認することをお勧めします。 Jenkinsで環境変数を設定する方法

グローバルな静的環境変数は、Jenkinsの管理>システムの構成>グローバルプロパティ>環境変数で、Jenkinsインストールに対して設定できます。

環境変数は、エグゼキュータ設定でエグゼキュータごとに設定できます。 「環境変数」のチェックボックスがあり、これをチェックすると、環境変数の設定が公開されます。

環境変数はジョブごとに設定することもできます:

  • Pipelines を使用している場合は、 withEnv ステップを使用します。

  • 古いスタイルのフリースタイルジョブを使用している場合は、 EnvInject プラグインを使用します。

6
jayhendren

Jenkinsマスターインスタンスを構成するためにconfiguration-as-codeを使用している場合、 に示すようにglobalNodePropertiesを使用できます。https://github.com/jenkinsci/configuration-as- code-plugin/blob/d9171d086fbbf92cb5807da2dd12d6fc43df7a6b/demos/jenkins/jenkins.yaml#L7-L11

globalNodeProperties:
    - envVars:
        env:
          - key: FOO
            value: BAR
2
Ben Creasy