【问题标题】:Jenkins workflow job: limit where it can runJenkins 工作流作业:限制它可以运行的位置
【发布时间】:2017-07-04 16:36:20
【问题描述】:

我有两个 Jenkins 工作流作业,它们以不同的参数启动同一个作业,即它们构建的分支。后一项工作在多个平台上构建项目。 “头”作业,即工作流作业可以在不同的机器上启动。另外,设置中有两台linux机器。

有时会发生这样的情况,其中一台(例如,master)在其中一台 linux 机器上启动,而另一台在另一台机器上启动。他们俩都必须在 linux 机器上构建一个目标,并且由于他们俩都很忙,所以两个工作都停滞不前。

对于普通作业,可以限制它们可以运行的位置,但是,我找不到如何限制工作流作业可以运行的位置。显然,它应该使用 groovy 脚本来完成,但它究竟是如何让我不知道的。

有解决办法吗?

【问题讨论】:

    标签: jenkins jenkins-pipeline


    【解决方案1】:

    这是一个全局执行的 Jenkinsfile(这是告诉 jenkins 整个管道必须在具有这三个标签的从属设备上运行):

    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'
            }
          }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多