40

最近、Homebrew を使用して Jenkins をインストールしました。また、Homebrew を使用して Mercurial をインストールしました。

ターミナルから、hg リポジトリを正常に複製できます。しかし、Jenkins でジョブの一部として同じことをしようとすると、失敗します。

そこで、ジョブごとに、Jenkins にシェル スクリプトを実行するように指示しましたecho $PATH。案の定、パス/usr/local/binはそこにはありません。ターミナルから同じコマンドを実行すると、そこにあります。

では、ターミナルからエコーするときに、Jenkins が使用しているのと同じ PATH をプルするように PATH を変更する最良の方法は何ですか?

Jenkins は、私がログインしてこれらのテストを行っているのと同じユーザー アカウントから実行されているため、なぜこれが起こっているのか理解できません。

4

5 に答える 5

21

Jenkins の launchd .plist ファイルで、次を使用して PATH 環境変数を設定できます。

<key>EnvironmentVariables</key>
<dict>
    <key>PATH</key>
    <string>(insert your path value here)</string>
</dict>

これにより、必要なものに PATH が設定されます。

于 2013-03-25T18:10:41.057 に答える
12

何らかの理由で、Jenkins はスレーブに接続するときに /usr/local/bin を PATH に保持しません。
次のいずれかの方法でPATHに追加できます

  • ノード構成に環境変数を追加する、または

  • ユーザーフォルダーに.bashrcファイルを追加する

     PATH="/usr/local/bin:${PATH}"
    

注: ~/.bashrc を編集した後、Mac クライアントを切断し、Jenkins Web アプリ経由で再接続する必要があります。

于 2016-10-07T04:21:53.057 に答える
3

launchd.conf ファイルで PATH を設定できます。詳しくはこちらをご覧ください。「コマンドは $HOME/.launchd.conf または/etc/launchd.confman launchctlに保存して、launchd の起動時に読み取ることができる」と書かれているので、ホーム ディレクトリに「.launchd.conf」を作成して、このファイルのリンクからの指示を使用してください。しかし、launchd.conf ファイルで知る限り、ディレクトリを PATH に追加することはできません。PATH を書き換えるだけです。 /etc/paths.d ディレクトリを使用したソリューションについては、こちら
もご覧ください。

于 2013-03-26T06:58:56.453 に答える
3

ノードの PATH 環境変数を設定しても、hombrew Mercurial インストールでは機能しないことがわかりました。パスは設定されますが、VCS チェックアウト フェーズではなく、スクリプト ビルド フェーズに対してのみ設定されます。これが私がやったことです。

  1. に入るManage Jenkins -> Configure System
  2. 新しい Mercurial インストールを追加する
  3. 好きな名前を付けてください(私はbuild-macと名付けました)
  4. Installation Directory私が置くために/usr/local
  5. Executableパラメータは にあらかじめ設定されていたので、そのINSTALLATION/bin/hgままにしました。
  6. ここの他のすべては空白のままにすることができます
  7. ジョブに入り、構成を編集します
  8. 追加したばかりのMercurialインストールにSource Code Management設定します。Mercurial Version
  9. 保存
  10. $$$

この同じ問題に遭遇した他の誰かを助けることを願っています/usr/bin. 以前は、そこに hg をシンボリックリンクするだけでしたが、新しい「システム整合性保護」「機能」により、それはもはや簡単な作業ではなくなり、Mac スレーブがヘッドレスの場合はさらに困難になります。

于 2016-09-07T22:43:57.937 に答える
2

次の PATH 変更では、= の両側にスペースを入れないでください: PATH="/usr/local/bin:$PATH"

macOS にインストールされた Jenkins のビルド前のステップに追加しました。

于 2019-02-25T08:12:41.380 に答える