我有一个外部工具,应该在我的詹金斯工作之一中称为构建步骤。不幸的是,该工具在引用命令方面存在一些问题,以避免在调用路径中出现空格问题。
Jenkins已安装在中C:\Program Files (x86)\Jenkins。因此,詹金斯在调用外部工具时遇到了麻烦。
C:\Program Files (x86)\Jenkins
我试图在Jenkins-> configuration中将“ Workspace Root Directory”设置C:\jenkins_workspace为以避免任何空格。这适用于Freestyle项目,但我的Multibranch Pipeline项目仍在检出并在下构建C:\Program Files (x86)\Jenkins\workspace。
C:\jenkins_workspace
C:\Program Files (x86)\Jenkins\workspace
一种解决方案是将整个jenkins安装移至例如C:\jenkins。我想避免这一点。是否有一种正确的方法来告诉Jenkins Pipeline作业也使用“工作区根目录”?
C:\jenkins
谢谢你的帮助
该ws指令设置其中的命令的工作区。对于声明性管道,它是这样的:
ws
ws("C:\jenkins") { echo "awesome commands here instead of echo" }
您还可以调用脚本来构建customWorkspace以便使用:
# if the current branch is master, this helpfully sets your workspace to /tmp/ma partOfBranch = sh(returnStdout: true, script: 'echo $BRANCH_NAME | sed -e "s/ster//g"') path = "/tmp/${partOfBranch}" sh "mkdir ${path}" ws(path) { sh "pwd" }
您还可以通过使用该agent块(通常在块的顶部pipeline)对其进行全局设置,并将其应用于node该级别:
agent
pipeline
node
pipeline { agent { node { label 'my-defined-label' customWorkspace '/some/other/path' } } stages { stage('Example Build') { steps { sh 'mvn -B clean verify' } } } }
node稍后的另一条指令可能会覆盖它。customWorkspace在https://jenkins.io/doc/book/pipeline/syntax/中进行搜索。您也可以将其与docker和dockerfile指令一起使用。
customWorkspace
docker
dockerfile