使用 Jenkins 参数化远程触发插件和文件参数

问题描述 投票:0回答:1

问题:

我正在尝试使用 Jenkins 参数化远程触发器插件从不同的 Jenkins 实例远程运行 Jenkins 作业。 有没有办法使用插件将文件参数传递到下游作业?

我正在尝试找到一种方法从另一个 Jenkins 实例远程运行 Jenkins 作业,同时等待下游作业完成并获取结果。 当我只输入字符串参数时,Jenkins 参数化远程触发器插件可以完美地做到这一点:

def handle = triggerRemoteJob job: 'http://my-jenkins-instance/job/my-job-name', parameters: 'param1=abc\nparam2=xyz'

但主要问题是,有没有办法也传递文件参数?或者我是否需要找到不同的解决方案。 (如果是这样,从不同实例远程运行作业同时等待作业完成并获取作业结果的最佳方法是什么?)。

jenkins jenkins-plugins
1个回答
0
投票

我不认为Jenkins 参数化远程触发器插件本身支持文件参数。

您可以通过将文件上传到两个 Jenkins 实例均可访问的共享位置并将文件 URL 或路径作为字符串参数传递来解决此限制。

def fileUrl = 'http://shared-location/path/to/file'
def handle = triggerRemoteJob job: 'http://my-jenkins-instance/job/my-job-name', 
                              parameters: "param1=abc\nparam2=xyz\nfileUrl=${fileUrl}"

在下游作业中,您可以使用脚本从共享位置下载文件。


如果您需要更直接的方法来传递文件参数或想要远程运行作业的替代方法,您可以考虑:

  • SSH Plugin:使用SSH直接在远程Jenkins实例上执行命令。这可以包括文件传输命令。

  • 使用 Jenkins REST API 触发作业并上传文件。

  • 如果两个 Jenkins 实例都可以访问共享文件系统,您可以将文件放置在那里并在作业中引用它们。

  • 使用 Nexus 或 Artifactory 等工件存储库来存储文件,并将工件 URL 作为参数传递。

© www.soinside.com 2019 - 2024. All rights reserved.