jenkins 将文件夹内的作业分配给特定节点

bvpmtnay  于 2023-03-17  发布在  Jenkins
关注(0)|答案(1)|浏览(173)

我的Jenkins示例有几个属于不同项目的作业文件夹。现在,对于某些文件夹,

  • 所有作业都应在特定的生成节点上运行
  • 此文件夹外部的任何作业都不应在这些特定的生成节点上运行

我知道这可以通过使用标签来完成,但我想知道是否有一种方法可以在文件夹上进行配置,而不必将标签信息添加到下面的所有作业

yyhrrdl8

yyhrrdl81#

是的,在文件夹中,您可以使用一些环境变量设置配置文件,这些环境变量稍后将由jenkinsfile用于“决定”代理标签。但是,您将无法强制执行它,也无法防止其他作业重用这些代理。管道的示例如下所示:

pipeline {
    agent none
    environment {
      AGENT_LABEL = 'nice-label'
    }
    stages {
        stage('Build') {
            environment {
                AGENT_LABEL = sh(script: 'echo $AGENT_LABEL', returnStdout: true).trim()
            }
            agent {
                label "${AGENT_LABEL}"
            }
            steps {
                // Run build steps here
            }
        }
    }
}

要了解如何在jenkins中读取配置文件,请参见post
在更复杂但更有效的设置中,您可以在开始构建之前动态生成每个作业所需的代理。为此,您需要配置和使用Kubernetes plugin。这是tutorial

相关问题