8

我需要在多种配置上构建和测试:linux、osx 和 solaris。我有标记为“linux”、“osx”和“solaris”的从节点。在每个配置上,我想(a)构建(b)运行冒烟测试(c)如果冒烟测试通过,然后运行完整测试,也许更多。

我认为多配置作业可能是答案,所以我设置了一个多配置构建作业,它在每个操作系统上启动并发构建。构建作业将触发下游冒烟测试构建,进而触发完整测试作业。

我遇到了以下问题

  1. 如果其中一项配置失败,则整个作业都会失败,并且 Jenkins 不会触发任何下游作业(例如,如果 solaris 构建失败,Jenkins 将不会为 osx 和 linux 运行冒烟测试或完整测试)。

  2. solaris 构建所需的时间大约是其他构建的两倍(大约一个小时),我更喜欢 linux 和 osx 烟雾测试而不是等待 solaris 构建完成。

这是否意味着我只剩下手工制作三个工作管道,并将它们放在“开始所有”工作(即创建和手动链接以下工作)之后?

build-linux   smoke-test-linux   full-test-linux
build-osx     smoke-test-osx     full-test-osx
build-solaris smoke-test-solaris full-test-solaris

我错过了什么明显的东西吗?

4

2 回答 2

4

据我所知,答案是创建 3 个矩阵作业,每个系统一个。然后,他们将拥有 3 个子作业(构建、烟雾测试、完整测试),其中构建作业作为试金石。

于 2011-07-04T05:05:53.303 回答
3

您是否考虑过将构建、冒烟测试和完整测试组合到一个单一的多配置作业中?除了有点乱,这应该对你有用。

To answer your first issue: to trigger a downstream job regardless of result, use trigger parameterized build to run when complete (always trigger) and then check "build w/o parameters"

To answer your second issue: either use an all encompassing multi-configuration (matrix) job or use three separate job streams as you mentioned. UPDATE: you could run 3 sequential matrix jobs for each step (build, smoke-test, full tests) but it would mean that if any of the build steps failed then none of the smoke-tests would be run.

于 2011-12-15T14:31:46.797 回答