当前位置: 首页 > 知识库问答 >
问题:

在Jenkins工作流中将s3工件从并行构建传递到单个构建

禹正阳
2023-03-14

我正在尝试通过 Jenkins 构建 Windows 安装程序。

我有许多jenkins项目,它们构建单个模块,然后通过s3工件插件将这些工件保存在s3中。

我想并行运行这些项目,并将项目复制到最终的“构建安装程序”作业中,该作业采用所有这些并构建安装程序映像。我想出了如何与 jenkins 工作流并行运行作业,但我不知道在哪里查找如何提取作业结果详细信息,确保它们都是相同的变更集并将其传递给“构建安装程序”作业。

到目前为止,我有这样的工作流脚本

def packageBuilds = [:]
// these save artifacts to s3:
packageBuilds['moduleA'] = { a_job = build 'a_job' }
packageBuilds['moduleB'] = { b_job = build 'b_job' }
parallel packageBuilds

// pass artifacts from another jobs to below??
build job:'build-installer', parameters:????

这是正确的方法吗?或者我应该有一个大型的构建任务,在一个任务中构建模块和安装程序?

共有1个答案

沈博达
2023-03-14

完成所有步骤的单个作业将更易于管理。

我知道将文件发送到工作流作业时不支持文件参数:JENKINS-27413。我还没有尝试使用文件参数从工作流作业发送文件。如果没有一些特殊的支持,它可能无法工作。(因此,不确定是否可以在freestyle构建之间发送文件参数。)

 类似资料:
  • 如何从Jenkins工作流groovy脚本中访问当前和相关的构建信息? 我可以看到像currentBuild这样的东西。结果和当前构建。previousBuild正在记录,但我看不到如何访问,例如: 当前生成作业的 URL。 此工作流触发的生成作业的 URL。 特定失败的生成作业的控制台输出等。 感谢任何指点。

  • 问题内容: 您如何从Jenkins工作流groovy脚本中访问当前以及相关的构建信息? 我可以看到有类似currentBuild.result和currentBuild.previousBuild之类的文档,但是我看不到如何访问,例如: 当前构建作业的URL。 此工作流程触发的构建作业的URL。 特定失败的构建作业的控制台输出,等等。 感谢您的指导。 问题答案: 将为您提供非缓存的对象,请参见hu

  • 詹金斯的新成员。 目前,我们使用maven和Subversion作为SCM进行手动构建: > 在本地工作副本文件夹中,POM文件有1.1.1-SNAPSHOT,issue mvn release:clean release:prepare-p all modules 这将创建一个标记https://avn/path/to/tag/xxx-1.1.1,而我的本地工作副本仍在1.1.2-SNAPSHO

  • 问题内容: 我使用 hudson.cli.CLI jar* 创建Jenkins职位。我在 “构建后步骤” 部分中选择了 “归档工件” 选项。它将每个成功构建的工件存档。我正在使用 jenkins远程访问api 获取有关 作业的 详细信息。并获取有关 构建的 详细信息。 *** 在删除构建时,不会删除相应的归档工件。我想确保将其删除。 当我使用jenkins远程访问api 进行构建时,它会返回jso

  • 我更喜欢在Maven中执行此操作,因为我们的Nexus设置和凭据已经在环境中,不需要在命令行上手动传递。为此使用Nexus UI不是一个可行的选择,因为这需要成为标准构建-部署-测试过程的一部分,对于几十个应用程序来说,这可能每天都会发生很多次。

  • 我在GitHub中有一个包含多个服务的monorepo 我想在两个条件下同时构建它们(使用GitHub操作): 标记-使用标记名称构建图像() 分支main-使用带有缓存的标签构建图像。 我找不到如何创建通用工作流和修改参数(如函数)的方法。 我能想到的唯一解决方案是创建一个复合操作,如下所示: 但现在我遇到了一个问题,需要在两个工作流中指定服务的所有作业,例如: 主要分支机构工作流: 标记分支工