首页 > 解决方案 > 在访问构建变量时在从站上运行(系统/詹金斯)groovy 脚本

问题描述

我正在尝试运行一个 groovy 脚本,该脚本build.description在执行期间更新从节点上的进程。

我的问题是“系统常规脚本”仅在主节点上执行,而“Jenkins 常规脚本”在从节点上运行但无法访问该build变量。

我有一个类似于这个的脚本:

import hudson.model.* 

// works on slave node
def param = args[0]

// works on master node
//def param = build.getEnvironment(listener).get('Params') 

def ws = new File(".").absolutePath

def myCommand = ws + "\\Something.exe " + param

def proc = myCommand.execute();

// Cannot use on slave
build.description = "Running executable..."

int exitVal = proc.waitFor();

// Cannot use on slave
build.description = "Executable finished"

有没有办法修改在从属设备上运行的“Jenkins Groovy 脚本”上的构建变量?

提前致谢!

标签: jenkinsgroovyhudsonjenkins-slave

解决方案


不。

Jenkins 管道公开了对此类事情的更多控制。

以下是我们拥有的脚本。nodeexpression可以是节点名称。

  node(nodeexpression) {
        println "env :"
        echo sh(script: 'env|sort', returnStdout: true)

        currentBuild.displayName = "branch ${BRANCH}:${MAIL_TO}"
        currentBuild.description = "${BRANCH}:${MAIL_TO} : message -> ${MESSAGE}"
  }

推荐阅读