无法将变量从 Jenkins 中的执行 shell 导出到其他项目(使用属性文件)
can't export a variable from execute shell in Jenkins to other project (with using properties file)
我有一个 Jenkins 项目,其中有一个 "Execute shell" 执行一些 bash 命令并将一个变量导出到环境。变量:
#!/bin/bash
...
TARGET_FULLPATH="blablabla"
export TARGET_FULLPATH
此外,我已将 "Post-build Actions" 配置为:
- "Trigger parameterized build on other projects"
- "Current build parameters"
- "Predefined parameters" -> FULLPATH=$TARGET_FULLPATH
但是,当我 运行 这个项目时,另一个将在第一个项目完成后立即启动的项目似乎根本没有获得参数 FULLPATH!
至少在 "Execute shell"(第二个项目)中,bash 脚本不会为 echo $FULLPATH 打印任何内容!同样在第二个项目的 "Environment Variables" 中,不包括 FULLPATH!
知道我做错了什么吗?
还有一件事,我不能使用属性文件来存储参数,因为这两个项目 运行 在不同的服务器上运行,并且在这些服务器之间复制文件有限制!
你看过这个解决方案吗?
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" 脚本来创建属性文件和一个 "Inject environment variables" 步骤来加载属性文件:
2/ 为了演示,我添加了一个"post-build task"步骤来读取变量
3/ 这是控制台输出,有效:)
我有一个 Jenkins 项目,其中有一个 "Execute shell" 执行一些 bash 命令并将一个变量导出到环境。变量:
#!/bin/bash
...
TARGET_FULLPATH="blablabla"
export TARGET_FULLPATH
此外,我已将 "Post-build Actions" 配置为:
- "Trigger parameterized build on other projects"
- "Current build parameters"
- "Predefined parameters" -> FULLPATH=$TARGET_FULLPATH
但是,当我 运行 这个项目时,另一个将在第一个项目完成后立即启动的项目似乎根本没有获得参数 FULLPATH!
至少在 "Execute shell"(第二个项目)中,bash 脚本不会为 echo $FULLPATH 打印任何内容!同样在第二个项目的 "Environment Variables" 中,不包括 FULLPATH!
知道我做错了什么吗?
还有一件事,我不能使用属性文件来存储参数,因为这两个项目 运行 在不同的服务器上运行,并且在这些服务器之间复制文件有限制!
你看过这个解决方案吗? 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" 脚本来创建属性文件和一个 "Inject environment variables" 步骤来加载属性文件:
2/ 为了演示,我添加了一个"post-build task"步骤来读取变量
3/ 这是控制台输出,有效:)