RunListener 和 QueueListener 未在管道中调用?

RunListener and QueueListener not invoked in pipeline?

我正在尝试编写一个插件来侦听 Jenkins 管道期间的节点执行。管道将有一些这样的代码:

stage ('production deploy') {
    input 'enter change ticket #'...
    node('prod') {
       // production deploy code here
    }
}

在分配节点时,或在节点上执行任何任务 运行 之前,我想验证更改管理票证是否已获批准。对于 Freestyle 作业,我可以使用 QueueListener 或 RunListener,但是当我 运行 一个管道时,它们都不会被调用。

我无法将此代码放入管道脚本中,因为任何可以编辑管道脚本的人都可以删除验证。

在管道中分配节点之前或之后是否可以挂接任何其他侦听器?

在我之前的自由式构建实现中,我覆盖了 setUpEnvironment 方法。我没有意识到这不是在管道运行中调用的 - 有道理。然后我在我的 RunListener 中实现了 onStarted 并且我成功地闯入了我的代码。只是我的困惑。