如何复制Jenkins秘密文件

Hum*_*erd 17 groovy jenkins

我已经为Jenkins凭证添加了两个秘密文件,其中包含名称PRIVATE-KEYPUBLIC-KEY.如何将这2个文件复制到/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?
}
Run Code Online (Sandbox Code Playgroud)

Hum*_*erd 34

好吧,我想我成功了.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"
}
Run Code Online (Sandbox Code Playgroud)

  • 感谢您回来找到解决方案,这对我很有帮助. (3认同)
  • 请注意,在凭证块关闭后,您的方法会将复制的文件保留在构建节点上。任何后续步骤仍然可以访问文件内容。请记住,withCredential 块是特权访问块。 (3认同)

Vah*_*yan 9

两种解决方案都适用于特定OSwin, unix)。有一些基本功能要检查系统 unix isUnix()。取而代之的是,您可以对任何机器使用读/写基本方法。

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)
    }
Run Code Online (Sandbox Code Playgroud)