如何为jenkins multibranch管道项目设置特定的工作区文件夹

时间:2017-04-26 07:13:06

标签: jenkins jenkins-pipeline

我有一个外部工具,应该在我的一个jenkins工作中调用build-step。不幸的是,这个工具在引用命令方面存在一些问题,以避免调用路径中的空格问题。

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

我尝试的是设置"工作区根目录"在Jenkins->配置到C:\jenkins_workspace以避免任何空格。这适用于Freestyle Projects,但我的Multibranch Pipeline Project仍然在C:\Program Files (x86)\Jenkins\workspace下签出并构建。

一种解决方案是将整个jenkins安装移到例如C:\jenkins。这个我想避免。有没有一种方法可以告诉Jenkins Pipeline工作使用"工作区根目录"还有吗?

感谢您的帮助

2 个答案:

答案 0 :(得分:18)

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

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/搜索customWorkspace。您也可以将其与dockerdockerfile说明一起使用。

答案 1 :(得分:0)

试试这个语法:

select id,
       to_date(substr(lastmodifieddate, instr(lastmodifieddate, '(') + 2, 10), 'yyyy-mm-dd') datum
from x_task
where to_date(substr(lastmodifieddate, instr(lastmodifieddate, '(') + 2, 10), 'yyyy-mm-dd') >= to_date('2020-05-31', 'YYYY-MM-DD') 
  and to_date(substr(lastmodifieddate, instr(lastmodifieddate, '(') + 2, 10), 'yyyy-mm-dd') <  to_date('2020-06-30', 'YYYY-MM-DD');