当前位置: 首页 > 知识库问答 >
问题:

如何为jenkins多分支管道项目设置特定的工作空间文件夹

宋和颂
2023-03-14

我有一个外部工具,在我的jenkins工作中应该称为构建步骤。不幸的是,该工具在引用命令以避免从调用的路径中出现空格问题方面存在一些问题。

Jenkins安装在C:\Program Files(x86)\Jenkins中。因此,我在jenkins调用外部工具时遇到了问题。

我尝试的是设置“工作区根目录”在詹金斯 -

一种解决方案是将整个詹金斯安装移动到例如C:\詹金斯。我想避免这种情况。有没有一种正确的方法来告诉 Jenkins 管道作业也使用“工作区根目录”?

感谢任何帮助

共有2个答案

平航
2023-03-14

试试这种语法:

pipeline {
    agent { 
        label {
            label 'EB_TEST_SEL'
            customWorkspace "/home/jenkins/workspace/ReleaseBuild/${BUILD_NUMBER}/"
        }
    }
}
田巴英
2023-03-14

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"
}

您还可以通过使用代理块(通常位于pipelineblock的顶部),将其应用到该级别的

pipeline {
  agent {
    node {
      label 'my-defined-label'
      customWorkspace '/some/other/path'
    }
  }
  stages {
    stage('Example Build') {
      steps {
        sh 'mvn -B clean verify'
      }
    }
  }
}

稍后的另一条node指令可能会覆盖它。在https://jenkins.io/doc/book/pipeline/syntax/.搜索CustWorkspace您也可以将其与dockerdockerfile指令一起使用。

 类似资料:
  • 问题内容: 我有一个外部工具,应该在我的詹金斯工作之一中称为构建步骤。不幸的是,该工具在引用命令方面存在一些问题,以避免在调用路径中出现空格问题。 Jenkins已安装在中。因此,詹金斯在调用外部工具时遇到了麻烦。 我试图在Jenkins-> configuration中将“ Workspace Root Directory”设置为以避免任何空格。这适用于Freestyle项目,但我的Multib

  • 是否有人知道从文件中设置作业属性(特别是构建触发器)的正确方法?(多分支管道作业中的声明性管道脚本)。 为了清晰起见,我需要为多分支项目中的底层作业设置特定的构建触发器。我可以在GUI中配置总体多分支项目的触发器。 尝试过这里列出的方法:Jenkins多分支管道和指定上游项目 詹金斯:在上游更改时触发多分支管道 如何使用Jenkins管道属性步骤? 从v0开始,我就听到这样的错误。8我应该使用选项

  • 我已经建立了多分支管道来跟踪我的回购,并自动构建和测试所有合并请求。然而,我注意到Jenkins为每个新分支创建了一个新的工作区。这是一个相当大的项目,有着繁重的构建过程和大量未跟踪的缓存文件,这些文件大多在不同版本之间保持有效——因此,如果不是新的git签出,而是重新使用以前的工作区,那么它的构建速度会快得多(也不会占用太多硬盘空间)。 如何将其配置为对不同分支重复使用相同的工作区?

  • 我遇到了JENKINS-38706。由于它已经开放了一段时间,我正在努力解决这个问题。 我的问题是我正在运行一个多节点管道,其中一个节点是Windows从节点,具有255个字符路径限制。 因此,我正在尝试更改我的Windows从属阶段的工作区,而不是使用多分支管道使用的C:\jenkins\workspace\job-分支-随机字符,我正在尝试将其移动到c:\w\Jobs\分支。 它立即失效: 我

  • 问题内容: 在Jenkins管道中,当在特定节点上运行构建时,会在该代理上分配工作区。我们没有设置工作空间路径,因此它是自动确定的。我了解,当同一作业在同一代理上同时运行时,工作空间必须包含执行程序编号以隔离构建。 但是…工作空间路径究竟是如何构建的? 我们的构建被分配给一个特定的节点(具有4个执行程序),并且被配置为不允许并行构建。通常分配给它: 在某个时候,该构建开始在执行程序2上运行,但仍使

  • 问题内容: 有谁知道在Jenkinsfile中设置作业属性(特别是构建触发器)的正确方法吗? (多分支管道作业中的声明性管道脚本)。 为了清楚起见,我需要为多分支项目中的基础作业设置特定的构建触发器。我可以在GUI中配置总体多分支项目的触发器。 我收到错误消息,说自v0.8起,我应该改用options步骤:https ://jenkins.io/doc/book/pipeline/syntax/#