我正在使用Jenkins Pipline和Groovy脚本在jenkins的奴隶机器上下载一个拉链。
以下是我的代码:
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:没有这样的文件或目录
我检查过以下内容:
curl
命令时,它会成功运行。 jenkins slave
我有什么遗失的吗?
感谢任何帮助。谢谢。
答案 0 :(得分:1)
经过长时间的研究,我发现使用以下命令触发了bash命令
def processDownload = ['bash', '-c', "curl -g -k --noproxy \"*\" -o <output-dir> \"${url}\""].execute()
Jenkins将始终在Master上执行它。
当我将其更改为普通shell命令时,Jenkins正在从机上正确执行它。此外,为了解压缩,我使用了Pipeline Utility Steps
插件,它提供了在slave上执行的解压缩功能。以下是我的工作代码:
stage('Download') {
steps {
script {
url = "<server url>"
sh "curl -k --noproxy \"*\" -o \"<output-dir>\" \"${url}\""
unzip(dir: '', glob: '', zipFile: 'fileName.zip')
}
}
}