我有两个Jenkins工作流作业,它们使用不同的参数启动相同的作业,即它们构建的分支。后一个工作在几个平台上构建项目。 “head”作业,即worklflow作业可以在不同的机器上启动。此外,设置中还有两台Linux机器。
有时会发生其中一个(例如,master)在其中一台Linux机器上启动,另一台在另一台机器上启动。他们两个都必须在linux机器上构建一个目标,因为它们都很忙,所以两个工作都停滞不前。
使用常规作业,可以限制它们可以运行的位置,但是,我找不到如何限制工作流作业可以运行的位置。显然,它应该使用groovy脚本来完成,但它完全逃脱了我。
有解决方法吗?
答案 0 :(得分:1)
这是一个Jenkins文件全局地执行它(这告诉jenkins整个管道必须在带有这三个标签的slave上运行):
pipeline {
agent { label 'docker && git && rbenv' }
stages {
stage('commit_stage') {
steps {
echo 'building stuff'
}
}
}
}
您还可以通过node
步骤为舞台的任何舞台或部分选择某个从属或某些功能:
pipeline {
agent { label 'docker && git && rbenv' }
stages {
stage('commit_stage') {
steps {
// this overrides the top-level agent requirements
node('linux_with_zsh') {
echo 'building stuff'
}
}
}
}
}