2016-04-18 8 views
1

私ははジェンキンスジョブDSLスクリプトから他のファイルに依存

String script = ''' 
    # large script 
''' 

として宣言してshell方法からそれを呼び出しています私の仕事のDSLファイル内のいくつかの大規模のbashスクリプトを持って

shell(script) 

方法これまでのスクリプトをシェルファイルに分解したいと思います。私は

String script = new File('script.sh').text 

を宣言しようとしましたが、ジェンキンスジョブDSLスクリプトを実行するジョブは、ファイルを見つけることが表示されない場合、実際に私はそれがさえから実行されている場所を確認していません。

答えて

1

readFileFromWorkspaceを使用すると、ジョブの作業領域からファイルの内容を読み取ることができます。

パスは作業領域のルートからの相対パスで指定します。

上記のリンクされたAPIドキュメントの2番目の例は、バッチファイルの場合ですが、バッチをシェルに置き換えると、あなたの場合の解決策が得られます。

def runScript = readFileFromWorkspace('script.sh') 
job('example-2') { 
    steps { 
     shell(runScript) 
    } 
} 
+0

スーパー!魅力的な作品! :) – Theodor