如何复制Jenkins秘密文件

时间:2018-03-24 02:06:42

标签: jenkins groovy

我已经为姓名为PRIVATE-KEYPUBLIC-KEY的Jenkins凭据添加了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?
}

3 个答案:

答案 0 :(得分:24)

好的,我想我成功了。 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"
}

答案 1 :(得分:3)

两种解决方案都适合特定的OS win,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)
    }

答案 2 :(得分:1)

在@Humberds回答之后,powershell的等效项是:

withCredentials([file(credentialsId: 'PRIVATE_KEY', variable: 'my-private-key')]) {
  bat "powershell Copy-Item $appSettings -Destination src\\main\\resources "
}