首页 > 解决方案 > 如何在 Jenkinsfile 的环境变量中使用环境变量?

问题描述

我想要一个环境变量 COMPOSE_PROJECT_NAME,其值为 denpal-4,用于构建 ID 为 4 的 Jenkins 作业。

environment {
  COMPOSE_PROJECT_NAME = 'denpal-$(BUILD_ID)'
}

另一种方法是在每个 sh-block 中写这个

sh ''' 
export COMPOSE_PROJECT_NAME = 'denpal-$(BUILD_ID)'
code...
'''

然而,这将违反 DRY(不要重复自己)原则。环境 {} 中的某些东西可能吗?

更新/回答:双引号而不是单引号修复了它。

标签: jenkinsenvironment-variablesjenkins-pipeline

解决方案


是的,您可以在环境阶段将值分配给变量(使用env作为变量的前缀),然后可以在任何阶段使用它,请参见下文:-

environment {
           env.COMPOSE_PROJECT_NAME = "denpal-${BUILD_ID}"
        }

推荐阅读