我有一个 Jenkins 构建,它可以通过调度、用户请求或作为其他构建的构建步骤来触发。如果这个构建被作为另一个构建的一部分调用,它需要保存一些信息以供更大的构建使用。我想通过写入文件来传递这些信息。唯一的问题是让构建同意写入的位置。
一种方法是将其写入众所周知的位置,但这不允许并行运行多个构建,因为一个会破坏另一个。
另一种方法是向构建添加构建参数,其他构建将使用要写入的文件位置填充该构建参数。对我来说,这似乎有点像 hack,因为这意味着无论何时运行构建,都需要传入一个参数,即使它只是从默认值开始。
我考虑的最后一种方法是让父构建在构建中设置一个环境变量,让子构建检查变量的存在和内容并采取适当的行动。不幸的是,我找不到在 Jenkins 中进行设置的方法。