无法将Jenkins中执行shell的变量导出到其他项目(使用属性文件)

时间:2015-06-19 13:05:21

标签: bash shell jenkins

我有一个Jenkins项目,其中一个“执行shell”执行一些bash命令并将一个变量导出到env。变量:

#!/bin/bash

...
TARGET_FULLPATH="blablabla"
export TARGET_FULLPATH

此外,我已将“后构建操作”配置为:

  1. “在其他项目上触发参数化构建”
  2. “当前构建参数”
  3. “预定义参数” - > FULLPATH = $ TARGET_FULLPATH
  4. 但是,当我运行这个项目时,第一个项目完成后会立即启动的另一个项目似乎根本没有得到参数FULLPATH!

    至少在“执行shell”(第二个项目)中,bash脚本不会为echo $ FULLPATH打印任何内容!同样在第二个项目的“环境变量”中,不包括FULLPATH!

    任何线索我做错了什么?

    还有一件事,我不能使用属性文件来存储参数,因为这两个项目在不同的服务器上运行,并且在这些服务器之间复制文件有限制!

1 个答案:

答案 0 :(得分:20)

你有没有看过这个解决方案? Jenkins: How to use a variable from a pre-build shell in the Maven "Goals and options"

使用shell预构建步骤+ InjectEnv plugin,您应该能够解决问题。

从6月22日起更新,我添加了一些屏幕副本。

1 /添加第一个“Execute shell”脚本以创建属性文件,并添加“注入环境变量”步骤以加载属性文件:

enter image description here

2 /对于演示,我添加了一个“构建后任务”步骤来读取变量

enter image description here

3 /这是控制台输出,它有效:)

enter image description here