Jenkinsのスレーブ設定に関するアドバイスをお探しの場合今まで私たちはただマスターボックスを持っていました。すべてのジョブはsvnに格納されたgroovy Jenkinsfileから実行されるパイプラインです。これらのスクリプトは、Jenkinsfileと同じディレクトリにあり、チェックアウトの一部として提供される他のスクリプトをさまざまに参照します。セットアップにスレーブを追加することにしましたが、ジョブがスレーブ上で実行されるときにJenkinsの動作が異なっていることがわかりました。Jenkinsのマスターとスレーブの動作が異なる
ジョブスクリプトは同じような場所にチェックアウトされているマスター上で実行されます。
<JenkinsHome>/<Workspaces>/<JobName>@Script/
スレーブ上で実行したときに使用可能なスクリプトが存在しないので、しかし、最初はチェックアウトがありません。私たちは、スクリプトの先頭で
checkout scm
を追加することにより、Jenkinsfileでチェックアウトを強制しましたが、これは次のような場所にスクリプトをチェックアウトします:
<JenkinsHome>/<Workspaces>/<JobName>/
注@Scriptの欠如
これを回避するには、スクリプトが必要なファイルの場所をいくつか表示する必要がありますが、他の誰かがより洗練されたソリューションを見つけたのかどうか疑問に思っていました。
なぜ絶対パスを使用していますか? – StephenKing
私たちはそうではありません。プログラムでパスを取得します。しかし、あなたのような構造で終わるマスター上:///- チェックアウトからスクリプトがある - メインワークスペース //スクリプト/ @。 スレーブでは、 ///- メインワークスペースと、チェックアウトのスクリプトが含まれています。 –
gnuchu