我需要构建和测试多种配置:linux,osx和 Solaris操作系统。我有标记为“linux”,“osx”和“solaris”的从节点。上 每个配置,我想(a)构建(b)运行冒烟测试 (c)如果烟雾测试通过,则进行全面测试,或许更多。
我认为多配置作业可能就是答案,所以我设置了一个 多配置构建作业,它在每个上启动并发构建 OS。构建作业将触发下游烟雾测试构建,其中包含 转,触发全面测试工作。
我遇到了以下问题
如果其中一个配置失败,则作业整体失败,并且 詹金斯不会解雇任何下游工作(例如,如果solaris构建 如果失败,Jenkins将不会对osx和。进行冒烟测试或完整测试 Linux版)。
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
我是否错过了一些明显的东西?
答案 0 :(得分:4)
据我所知,答案是创建3个矩阵作业,每个系统一个。然后,他们将有3个subjobs(构建,烟雾测试,全测试),并将构建作业作为试金石。
答案 1 :(得分:3)
您是否考虑过将构建,冒烟测试和完整测试合并到一个多配置作业中?除了有点乱,这应该适合你。
回答第一个问题:无论结果如何都要触发下游作业,使用触发参数化构建在完成时运行(始终触发),然后检查“构建无参数”
要回答您的第二个问题:要么使用全面的多配置(矩阵)作业,要么使用三个单独的作业流,如您所述。更新:您可以为每个步骤(构建,冒烟测试,完整测试)运行3个连续矩阵作业,但这意味着如果任何构建步骤失败,则不会运行任何烟雾测试。