Jenkinsパイプラインスクリプト(groovy)を使用して、結果のwarファイルをあるビルドディレクトリから別のビルドディレクトリにコピーしようとしています。スクリプトが実行されるのと同じワークスペースから、jenkins ユーザーとしてシステム自体で find/exec/cp コマンドをテストしましたが、正常に動作します (コンソールから直接コピーして貼り付けます)。
String buildNumber = env.BUILD_NUMBER
def sout = new StringBuffer()
def serr = new StringBuffer()
//Create package directory in jenkins job folder
def packageDir = "${env.JENKINS_HOME}/jobs/Package_Deploy_Pipeline/builds/${buildNumber}/package/"
def command = "mkdir ${packageDir}"
def proc = command.execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(3000)
println "out> $sout err> $serr"
command = "find ${env.JENKINS_HOME}/jobs/myJob/builds/lastSuccessfulBuild/archive/build/libs/ -name *.war -exec cp {} ${packageDir} \\;"
println command
proc = command.execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(3000)
println "out> $sout err> $serr"
コンソール出力に表示されるエラーは次のとおりです。
[Pipeline] echo
out> err>
[Pipeline] echo
find /var/lib/jenkins/jobs/myJob/builds/lastSuccessfulBuild/archive/build/libs/ -name *.war -exec cp {} /var/lib/jenkins/jobs/Package_Deploy_Pipeline/builds/23/package/ \;
[Pipeline] echo
out> err> find: missing argument to `-exec'
"*.war"
編集: 、、、およびも試しまし'*.war'
た\;
';'