我正在使用Jenkins Pipline和Groovy脚本在Jenkins的从机上下载一个zip。
下面是我的代码:
pipeline {
agent { label '<my slave label>' }
stage('Download') {
steps {
script {
def url = "<server url>"
def processDownload = ['bash', '-c', "curl -g -k --noproxy \"*\" -o <output-dir> \"${url}\""].execute()
processDownload.waitFor()
def processUnzip = ['bash', '-c', "7z e lwbs.zip"].execute()
processUnzip.waitFor()
}
}
}
}
字符串
我得到以下错误:
警告:无法创建文件警告:
output-dir/newFile.zip:没有这样的文件或目录
我检查了以下内容:
1.当我在命令提示符下使用相同的curl
命令时,它成功运行。
1.我还确保了适当的用户权限被授予允许jenkins写入这个目录。
1.目录存在且目录url中没有空格
1.从服务器上有足够的可用磁盘空间
1.服务器URL和证书正确
1.许多SO,但没有提到jenkins slave
的问题
有什么我遗漏的吗?
任何帮助都很感激。谢谢。
1条答案
按热度按时间zed5wv101#
经过长时间的研究,我发现bash命令使用以下命令触发
字符串
Jenkins总是会在Master身上执行它。
当我将其更改为普通shell命令时,Jenkins在从机上正确执行它。此外,为了解压缩,我使用了
Pipeline Utility Steps
插件,它提供了在从机上执行的解压缩功能。以下是我的工作代码:型