【问题标题】:Can one Jenkins job handle two types of builds?一个 Jenkins 工作可以处理两种类型的构建吗?
【发布时间】:2011-08-10 12:12:36
【问题描述】:

目前我的团队正在使用 Jenkins 执行由 SVN 更改触发的自动构建。

最近,我们决定要使用 Sonar。我们不希望在每个快照构建中都发生声纳/哈德森集成。我们只想要一周左右一次。

我们的团队使用clean deploy -U 而不是clean deploy site-deploy -U,因此仅使用定期构建来触发声纳是不够的,因为它没有来自构建的站点信息(例如三叶草报告)。

我的问题是,在一项工作中,是否可以将不同的目标与不同的构建时间相关联?我可能不是很清楚。我可以将clean deploy -U 关联到由 SVN 更改触发的构建,但将“干净部署站点部署 -U”关联到由定期构建触发的构建吗?

是我唯一的选择

1.说服每个人在每个快照构建中都进行站点部署(因此需要更多时间)

2.为每周构建创建一个新作业?

【问题讨论】:

    标签: hudson build-automation jenkins sonarqube


    【解决方案1】:

    我过去在工作中也有类似的经历,下面是我解决问题的方法。

    只需对您需要的工具进行一些设置:

    1. Jenkins Sonar Plugin

    我们面临的问题是我们是否应该使用更多测试来运行构建,这会延长构建时间,从而减慢我们正在制作的工具的实时测试速度。与您面临的情况相似。我们决定做的是创建两个构建,一个用于与开发人员快速周转,另一个需要更长的时间,每周运行一次,但是根据您的情况,您可以简单地使用 Sonar Plugins 设置来解决您的问题,您可以让它由手动构建或 SCM 轮询触发。

    您可以控制Sonar在构建时运行的设置,安装插件后,转到配置系统。

    我希望这会有所帮助,但它应该只用一个构建就可以产生所需的行为。 :)

    【讨论】:

    • 这就是我决定采用的方式,每周定期构建。
    【解决方案2】:

    我不熟悉声纳以及您如何调用您的构建,所以我不确定这个答案是否是您正在寻找的。

    您可以使用Release build pluginParameterized Build 根据调用构建的方式选择不同的命令来运行。创建 Release 构建时,您可以在正常构建之前和/或之后使用不同的命令。发布构建通常是手动触发的,但您可以通过 Hudson CLI 或 API 从外部调用它。创建参数化构建时,您可以检查环境变量(传递给构建的参数)以选择应运行的命令。

    不久前,Jenkins 用户邮件列表上有 a similar question,它可能会提供一些关于如何使用参数化构建运行不同命令的额外信息。

    【讨论】:

    • 我不确定这是否对我有用,但我会进一步调查。我从来没有在 Hudson 做过很多工作,所以无论如何这都会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    相关资源
    最近更新 更多