在运行时,我的管道将位于BitBucket工作区中的二进制文件复制到构建工作区,然后需要在构建工作区中添加来自凭证存储的一些秘密文件,然后开始构建docker映像。
但是管道在复制文件时失败。我搜索并应用了这里找到的不同解决方案,但仍然有相同的错误。
执行如下命令:
stage('push credential in jenkins workspace') {
steps {
script {
withCredentials([
file(credentialsId: 'saremediation', variable: 'SA_KEY_PATH')]){
sh "ls -al"
sh "mkdir ${CERTIFDIR}"
sh "cp ${SA_KEY_PATH} ${CERTIFDIR}/credent.json"
}
}
}
}
失败,错误如下:
[Pipeline] sh
Warning: A secret was passed to "sh" using Groovy String interpolation, which is insecure.
Affected argument(s) used the following variable(s): [SA_KEY_PATH]
See https://jenkins.io/redirect/groovy-string-interpolation for details.
+ cp **** server/src/configuration/certificats/credent.json
cp: target 'server/src/configuration/certificats/credent.json' is not a directory
CERTIFDIR文件夹已经创建好了,因为当我添加sh "ls -al ${CERTIFDIR}"
时,我可以看到文件夹已经创建并且是空的。
通过在cp命令
中应用此语法来解决此问题sh "cp "${SA_KEY_PATH}" "${CERTIFDIR}""