Jenkins:在脚本之间传递变量,并在构建后操作中访问它

Tac*_*0sS 2 jenkins jenkins-plugins jenkins-cli

我有一份 Jenkins 工作,使用来自 bitbucket 的 SCM、两个 shell 脚本和一个将结果发布到 Slack 的后期构建操作。

我天真地想将第一个 shell 脚本中的一个结束变量传递给第二个,在第二个 shell 脚本中向该变量添加一些信息,然后将该变量附加到 Slack 自定义消息中。

我原以为这是一个内置功能,现在花了几天的时间断断续续地研究它。我已经厌倦了EnvInjectEnvironment InjectGlobal Variable String Parameter插件,但是在我尝试过的任何配置中它都不起作用。

在某些情况下,我收到此错误:

21:01:08 [EnvInject] - [ERROR] - The given properties file path 'build.properties' doesn't exist.
Run Code Online (Sandbox Code Playgroud)

我知道这个文件不存在。我希望插件创建它,所以我可以在第一个 shell 脚本中向它添加新内容,并在工作的每个其他步骤中加载。

我是否遗漏了什么或滥用了这些插件?

Tac*_*0sS 5

所以就像我看到它经常发生一样,在提出问题后,我能够像这样解决它:

首先我们创建一个shell脚本来创建文件,我已经添加了一个值: 在此处输入图片说明

然后我们告诉 Jenkins 从 build.properties 文件中注入变量: 在此处输入图片说明

然后我们改变文件中变量的值: 在此处输入图片说明

然后我们再次告诉 Jenkins 从同一个文件中注入变量: 在此处输入图片说明

然后我们可以观察下一个shell中的值变化: 在此处输入图片说明

同样在后期构建操作中: 在此处输入图片说明

和成功: 在此处输入图片说明