您可能需要的
rawbuild属性
currentBuild。
以下脚本应为您完成此任务。
//$JENKINS_HOME/workflow-libs/vars/getIpAddr.groovy@com.cloudbees.groovy.cps.NonCPSdef call() { def addr = currentBuild.rawBuild.getActions(CauseAction.class) .collect { actions -> actions.causes.find { cause -> cause instanceof hudson.model.Cause.RemoteCause } } ?.first()?.addr [ ip: addr ]}如果您使用它像:
def addressInfo = getIpAddr()def ip = addressInfo.ip
请注意,
null如果没有任何
RemoteCause动作
您可能只想返回
addrhashmap而不是hashmap
[ ip: addr ],就像这样
//$JENKINS_HOME/workflow-libs/vars/getIpAddr.groovy@com.cloudbees.groovy.cps.NonCPSdef call() { currentBuild.rawBuild.getActions(CauseAction.class) .collect { actions -> actions.causes.find { cause -> cause instanceof hudson.model.Cause.RemoteCause } } ?.first()?.addr}然后
def addressInfo = [ ip: getIpAdder() ]
Alos注意到,根据您Jenkins的安全性,您可能需要允许在沙盒脚本中运行扩展方法。您会注意到
RejectedSandboxException
您可以通过
Manage Jenkins-> 批准解决此问题
In-process script Approval
希望它能起作用



