我有一个Jenkins项目,其中一个“执行shell”执行一些bash命令并将一个变量导出到env。变量:
#!/bin/bash
...
TARGET_FULLPATH="blablabla"
export TARGET_FULLPATH
此外,我已将“后构建操作”配置为:
但是,当我运行这个项目时,第一个项目完成后会立即启动的另一个项目似乎根本没有得到参数FULLPATH!
至少在“执行shell”(第二个项目)中,bash脚本不会为echo $ FULLPATH打印任何内容!同样在第二个项目的“环境变量”中,不包括FULLPATH!
任何线索我做错了什么?
还有一件事,我不能使用属性文件来存储参数,因为这两个项目在不同的服务器上运行,并且在这些服务器之间复制文件有限制!
答案 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”脚本以创建属性文件,并添加“注入环境变量”步骤以加载属性文件:
2 /对于演示,我添加了一个“构建后任务”步骤来读取变量
3 /这是控制台输出,它有效:)