2017-03-07 62 views
7

sh "mkdir directory"の代わりにワークスペースの下にディレクトリを作成できる関数またはパイプラインプラグインがあるかどうかを知りたいですか?Jenkinsパイプライン作成ディレクトリ

groovy命令new File("directory").mkdirs()を使用しようとしましたが、常に例外が返されます。

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:スクリプトは、あなたが何ができるか新しいjava.lang.RuntimeException java.lang.Stringで

答えて

24

を使用することはできませんdirステップを使用しています、ディレクトリが存在しない場合は、dirステップは、ファイルまたは同様の書き込み後に必要なフォルダを作成します。

node { 
    sh 'ls -l' 
    dir ('foo') { 
     writeFile file:'dummy', text:'' 
    } 
    sh 'ls -l' 
} 

sh手順はFOことを示すために、ただそこにありますlderが作成されます。欠点は、フォルダ内にダミーファイルがあることです(他のファイルを書き込む場合はダミーライトは不要です)。これを実行すると、次の出力が得られます。

Started by user jon 
[Pipeline] node 
Running on master in /var/lib/jenkins/workspace/pl 
[Pipeline] { 
[Pipeline] sh 
[pl] Running shell script 
+ ls -l 
total 0 
[Pipeline] dir 
Running in /var/lib/jenkins/workspace/pl/foo 
[Pipeline] { 
[Pipeline] writeFile 
[Pipeline] } 
[Pipeline] // dir 
[Pipeline] sh 
[pl] Running shell script 
+ ls -l 
total 4 
drwxr-xr-x 2 jenkins jenkins 4096 Mar 7 22:06 foo 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] End of Pipeline 
Finished: SUCCESS 
+0

ありがとう@Jon S. Helpfull。 – black4bird

+0

答えをいただきありがとうございます。この動作はドキュメントには記載されていません – Hoall

関連する問題