我有一个Jenkinsfile,它实现了一个管道,并且在其中一个阶段中并且在一个节点下,如果我说不存储“ myfile”,那么该“ myfile”将在节点上可用吗?我的要求是,我需要访问此文件并作为Jenkinsfile脚本的一部分复制到已知的远程服务器(该远程服务器不是Jenkins池的一部分)。
答案 0 :(得分:1)
您可以使用SSH Pipeline Steps将文件复制到远程服务器。以下是如何将文件从作业工作区发送到远程主机的示例:
remote = [:]
remote.name = "name"
remote.host = "remote_ip"
remote.allowAnyHosts = true
remote.failOnError = true
withCredentials([usernamePassword(credentialsId: 'credentials_name', passwordVariable: 'password', usernameVariable: 'username')]) {
remote.user = username
remote.password = password
}
sshPut remote: remote, from: 'myfile', into: 'folder_on_remote_host'
答案 1 :(得分:0)
我说要取消隐藏“ myfile”,该“ myfile”将在节点上可用吗?
您不执行unstash 'myfile'
,而是执行unstash 'my_stash'
,其中my_stash
是您先前保存存储时使用的名称。存储可以包含一个文件,也可以包含整个目录树。它的内容是在存储时定义的(相对于运行${WORKSPACE}
的节点上的stash
),并且相对于运行{{ 1}}。
工作区根据您的代理程序配置(在我的位置,位于${WORKSPACE}
中),但是出于所有实际目的-因为节点上的步骤也正在该文件夹中运行-您可以将其称为unstash
,例如
/Users/jenkins/workspace/<a folder Jenkins creates>