Jenkins 如何复制詹金斯的秘密文件
我已经在Jenkins凭证中添加了两个名为Jenkins 如何复制詹金斯的秘密文件,jenkins,groovy,Jenkins,Groovy,我已经在Jenkins凭证中添加了两个名为PRIVATE-KEY和PUBLIC-KEY的秘密文件。 如何将这两个文件复制到作业中的/src/resources目录 我有以下代码片段 withCredentials([file(credentialsId: 'PRIVATE_KEY', variable: 'my-private-key'), file(credentialsId: 'PUBLIC_KEY', variable: 'my-public-key')]
PRIVATE-KEY
和PUBLIC-KEY
的秘密文件。
如何将这两个文件复制到作业中的/src/resources
目录
我有以下代码片段
withCredentials([file(credentialsId: 'PRIVATE_KEY', variable: 'my-private-key'),
file(credentialsId: 'PUBLIC_KEY', variable: 'my-public-key')]) {
//how to copy, where are those files to copy from?
}
好的,我想我做到了
my private key
变量是指向该秘密的路径,因此我必须将该秘密复制到所需的目标
withCredentials([file(credentialsId: 'PRIVATE_KEY', variable: 'my-private-key'),
file(credentialsId: 'PUBLIC_KEY', variable: 'my-public-key')]) {
sh "cp \$my-public-key /src/main/resources/my-public-key.der"
sh "cp \$my-private-key /src/main/resources/my-private-key.der"
}
在@answer之后,powershell
的等价物是:
withCredentials([file(credentialsId: 'PRIVATE_KEY', variable: 'my-private-key')]) {
bat "powershell Copy-Item $appSettings -Destination src\\main\\resources "
}
这两种解决方案都适用于特定的
OS
(win,unix)。有一些基本的功能需要检查是系统unixisUnix()
。相反,您可以对任何机器使用读/写基本方法
withCredentials([file(credentialsId: PRIVATE_KEY, variable: 'my_private_key'),
file(credentialsId: PUBLIC_KEY, variable: 'my_public_key')]) {
writeFile file: 'key/private.pem', text: readFile(my_private_key)
writeFile file: 'key/public.pem', text: readFile(my_public_key)
}
谢谢你带着一个解决方案回来,这对我很有帮助。谢谢humberd,是的,我认为能够转储到你喜欢的文件名将是一个很好的增强。提供了该选项。请注意,您的方法在凭据块关闭后将复制的文件保留在生成节点上。任何后续步骤仍然可以访问文件内容。请记住,withCredential块是特权访问块。这是一个干净的解决方案,但在尝试使用XML文件时,我得到了一个不需要的字符。