相关疑难解决方法(0)

获取Jenkins Pipeline插件中工作空间目录的绝对路径

我目前正在对Jenkins Pipeline插件(以前称为Workflow插件)进行一些评估.阅读文档我发现我目前无法使用env.WORKSPACE以下方法检索工作区路径 :

工作流脚本中当前不可使用以下变量:

NODE_LABELS

工作区

特定于SCM的变量,例如SVN_REVISION

有没有其他方法如何获得当前工作区的绝对路径?我需要运行一些测试,然后获取一些参数(一些可执行文件的绝对路径).我已经尝试new File("").absolutePath()在一个@NonCPS部分内部使用,但看起来非CPS的东西总是在主服务器上执行.

有没有人知道如何在运行某些批处理脚本的情况下获取此路径,该脚本将路径存储到某个文件中,以后可以再次读入该文件?

jenkins jenkins-workflow jenkins-pipeline

54
推荐指数
3
解决办法
11万
查看次数

Jenkins 管道中作业 DSL 中的工作区路径

我正在创建一个 jenkins 管道作业来使用 jenkins 作业 DSL 插件播种作业。如何获取 DSL 文件中的工作区路径?jenkins 管道代码如下:

#!groovy
  node{
    stage("build jobs"){
      ws{
        git poll: true,  credentialsId: 'xxx', url: 'ssh://git@aaaaa.cc.xxx.com:/xxx/xxx.git'
        checkout scm
        jobDsl(removedJobAction: 'DISABLE', removedViewAction: 'DELETE', targets: 'jobs/*.groovy', unstableOnDeprecation: true)
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

失败的 DSL 代码是:

hudson.FilePath workspace = hudson.model.Executor.currentExecutor().getCurrentWorkspace()
Run Code Online (Sandbox Code Playgroud)

随着错误:

Processing DSL script pipeline.groovy
java.lang.NullPointerException: Cannot invoke method getCurrentWorkspace() on null object
    at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
    at pipeline.run(pipeline.groovy:1)
    at pipeline$run.call(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

在作业 DSL 步骤中无法访问在管道区域中创建的变量

jenkins jenkins-job-dsl devops jenkins-pipeline

5
推荐指数
2
解决办法
8617
查看次数