当jenkins管道作业触发时,如何使用作业dsl获取一组文件



当被jenkins管道作业触发时,如何使用jenkins作业dsl获取文件数组?有一个名为readFileFromWorkspace的单一文件选项,但当我想要目录的内容时,它没有帮助。

这需要在从机上工作,而不是在排除的主机上工作

使用此变量hudson.FilePath workspace = hudson.model.Executor.currentExecutor().getCurrentWorkspace()在不使用jenkins管道时工作,但在时出错

从中可以看到,当使用jenkins管道时,环境变量WORKSPACE不存在

只有在master上运行时,此格式才有效new File(__FILE__).parent.absolutePath

您可以使用SEED_JOB变量(wiki)来获取运行job DSL构建步骤的作业。在管道的情况下,这应该是一个org.jenkinsci.plugins.workflow.job.WorkflowJob。使用SEED_JOB.lastBuild,您应该得到正在运行的版本,即org.jenkinsci.plugins.workflow.job.WorkflowRun。我不知道Pipeline的内部结构,但也许你可以从这里开始查看来源。

最新更新