我在一家软件公司工作,我们的主要开发语言是 Java。当然,我们使用 Hudson 进行持续构建,它在这方面表现得非常出色。但是,Hudson 在我们要求它做的其他一些事情上表现并不好。我们还使用 Hudson 作业来部署二进制文件、刷新数据库、运行负载测试、运行回归等。当存在构建依赖项时(即负载测试需要刷新数据库),我们确实会遇到麻烦。
这是 Hudson 没有做到的一件事真的需要:
构建依赖项:它支持 Ant 构建的构建依赖项,但不支持 Hudson 作业的构建依赖项。我们使用 URL 调用功能使 Hudson 作业调用另一个 Hudson 作业。问题是 Hudson 总是返回 200,并且不会阻塞直到作业完成。这意味着调用作业不知道 a) 构建是否失败;b) 如果没有失败,则不知道构建需要多长时间。
如果不需要使用 shell 脚本来指定构建行为那就好了,但这不是完全必要的。
任何方向都很好。也许我们没有以正确的方式使用 Hudson(即所有构建都应该是 Ant 构建吗?)或者也许我们需要另一种产品来实现一键部署、负载测试、迁移、数据库刷新等。
答案1
这个问题的实际答案可以在 Stackoverflow 上找到。
https://stackoverflow.com/questions/4317870/alternative-build-manager-to-hudson