Jenkins Matrix 构建:如何构建一次并将该二进制文件发布给奴隶?

Jenkins Matrix build: how to build once and publish that binary to slaves?

我有一个 Jenkins 矩阵构建,它将我的 Android 测试并行拆分到 5 个节点。目前,这 5 个节点中的每一个都必须构建我的 Android 二进制文件,这需要几分钟时间(这意味着我为此构建步骤支付的 VM 数量是我需要的 6 倍)。

有人知道我如何构建我的二进制文件一次并将生成的工件发布到 Matrix 构建中的奴隶吗?

我很确定我可以通过使用 Jenkins "MultiJob Project" 来实现这一点,但缺点是我需要完全分开配置主从作业。

有没有人有更好的主意?

更好的是,我可以让 Android 在主机上构建 运行 而模拟器在所有从机上启动吗?!那将是惊人的...

我会将事情分成两项工作:一项是构建应用程序的常规(自由式)工作,成功后存档 APK,并触发测试(矩阵)工作的下游构建。

矩阵作业将使用 Copy Artifact plugin 将刚刚编译的 APK 拉入每个矩阵变体的工作区。无论构建 运行 在哪里,或者测试构建在哪里 运行,APK 都会自动复制到正确的机器上。

您还可以通过 运行 每台(虚拟)机器一个以上的模拟器来节省资金,因为通常不需要将模拟器隔离开来。