【问题标题】:Get an environment variable by name in Jenkins在 Jenkins 中按名称获取环境变量
【发布时间】:2025-12-22 21:05:11
【问题描述】:

我正在使用 Jenkins 模板引擎,但遇到以下问题:

假设我想要一个将工件上传到 Artifactory 的库步骤。此步骤应将 git 提交的 URL 设置为属性。我希望每个项目都在 pipeline_config.groovy 文件中提供此 URL,而不是在步骤中硬编码。

问题是,这个 URL 是由一些固定的字符串加上一个动态值组成的,即env.GIT_COMMIT:例如:http://specific-server.com/project/${env.GIT_COMMIT}

最终,我希望步骤如下:

// upload.groovy

def call() {
   def props = config.git_url
}

和 pipeline_config 文件:

// pipeline_config.groovy

libraries {
  artifactory
  {
     git_url = "http://specific-server/project/${env.GIT_COMMIT}"
  }  
}

所以问题归结为:如何指示库步骤从 pipeline_config.groovy 文件中检索一些动态变量?

@steven-terrana

【问题讨论】:

  • 我没有使用模板引擎的经验,但加载步骤是否适合您?
  • 不这么认为.. 此方法评估工作区中文件内的脚本。事实并非如此.. 谢谢

标签: jenkins jenkins-plugins jenkins-template-engine


【解决方案1】:

假设已经为构建设置了环境,JTE 可以解析管道配置中的env var。

如果 GIT_COMMIT 来自正在构建的项目,您可以使用 git cli 从库步骤中确定该信息,然后连接从管道配置提供的 base-url。

【讨论】: