我已经限制了我的 Jenkins 主服务器执行的构建,因为它的所有从属服务器在 Node 安全设置中都比它更强大。
我的意思是:"管理 Jenkins" -> "管理节点" -> master -> "配置" ->选中"限制在此节点上运行的作业" -> ">作业限制" -> "正则表达式"。然后像^exact_allowed_job_name$
一样输入正则表达式。
现在,管道作业停滞在挂起状态("正在等待主服务器上的下一个可用执行程序"(。
我找不到任何方法来指定应在作业设置中执行此作业的从属,例如自由式作业中的"限制可以运行此项目的位置"复选框。
可能吗?
指定标签无济于事。这是我尝试过的第一个。
无论如何,这个简单的管道都需要主节点,无论标签'special'
。
#!/usr/bin/env groovy
node('special') {
stage('checkout') {
echo 'checkout'
}
}
这条管道也被卡住了。
#!/usr/bin/env groovy
pipeline {
agent none
stages {
stage('Checkout'){
agent {
label 'special'
}
steps {
echo 'Checkout'
}
}
}
}
谢谢,@Quantic指向文档。
根据它,
每个 Pipeline 构建本身都使用蝇量级执行器在主服务器上运行——一个不占用任何重要计算能力的未计数插槽。
由于我已经设置了,该作业名称必须与正则表达式匹配,在我的例子中,正则表达式是单个允许作业的确切名称,因此我有效地禁用了所有管道脚本。
此外,这是一个已知的错误:https://issues.jenkins-ci.org/browse/JENKINS-31866
此错误的优先级较低,因此管道插件对我来说不是一个选择。