2016-04-06 13 views
3

私は、ジョブの説明にフローのコードを書くのではなく、外部ソースから.dslファイルを実行することができると知っていますが、Jenkinsのファイルからワークスペースの外側にあるDSLを読み取る

/home/flows/flow_script.dsl 

私は次のエラーを取得する:

java.io.FileNotFoundException:/home/flows/flow_script.dsl (No such file or directory) 

パスが正しいことを、私はシェルからそのパスを通じてファイルを見ることができますが、それは私が「ビルドをワークスペース」の外に何かを選択してみましょうdoesntのapparetly。

答えて

1

私は最近、この問題に直面しました。私のDSLスクリプトは、私のワークスペースの外にありました(パッケージ経由でインストールされました)。問題は、DSLスクリプトパスが特定のパターンのみを許可するAnt形式であり、絶対パスではないことです。

私の回避策はハックですが、それは仕事をした:ワークスペースに外部ディレクトリをシンボリックリンク「プロセスジョブDSLの」ステップの前に実行するシェルステップを追加します。このような

何か:

echo "Creating a symlink from /home/flows to workspace" 
ln -sf "/home/flows" .flows 

その後、あなたは ".flows/flow_script.dsl" にDSLスクリプトのパスを設定することができます。

これにはいくつかの注意点があります。シンボリックリンクするディレクトリには、jenkinsユーザーがアクセスできる必要があります。そして、多くのベストプラクティスに違反する可能性があります。

関連する問題