请参阅最佳实践7:请勿:在节点块内使用输入。在声明性管道中,通过
agent指令完成节点选择。
此处的文档描述了如何定义
none管线,然后使用阶段级
agent指令在所需节点上运行阶段。我也尝试了相反的方法(在某个节点上定义一个全局代理,然后
none在输入的阶段级上定义),但这不起作用。如果管道分配了一个从站,则不能在一个或多个特定阶段释放该从站。
这是我们管道的结构:
pipeline { agent none stages { stage('Build') { agent { label 'yona' } steps { ... } } stage('Decide tag on Docker Hub') { agent none steps { script { env.TAG_ON_DOCKER_HUB = input message: 'User input required', parameters: [choice(name: 'Tag on Docker Hub', choices: 'nonyes', description: 'Choose "yes" if you want to deploy this build')] } } } stage('Tag on Docker Hub') { agent { label 'yona' } when { environment name: 'TAG_ON_DOCKER_HUB', value: 'yes' } steps { ... } } }}通常,构建阶段在标记为“ yona”的构建从属服务器上执行,但是输入阶段在主服务器上运行。



