我工作的小组已经对Jenkins进行了标准化的持续集成构建。代码签入触发标准构建,Cobertura分析并发布到Artifactory SNAPSHOT仓库。我刚刚在主构建文件中添加了一个新目标,它将启动Sonar运行,但我不希望每次签入都运行。
有没有办法在Jenkins中安排每晚构建特定的构建目标? Jenkins显然促进了预定的构建,但它每次都会运行项目的常规构建。我希望能够安排Sonar构建目标每晚运行。
当然,我可以创建一个单独的Jenkins项目来按计划运行Sonar目标,但是如果可以的话,我试图避免这样做。我们的Jenkins服务器已经有几百个版本;为了安排夜间构建而加倍,这是不可取的。我找了一个可能有助于此的Jenkins插件,但我找不到任何东西。有什么建议吗?答案 0 :(得分:7)
如果你可以使用cron
或其他一些调度工具触发构建,那么这是一种方法:
http://[jenkins-host]/jobs/[jobname]/buildWithParameters
。根据您的Jenkins版本和配置,您可能需要添加Authentication Token并将其包含在您的网址中。使用用户名和密码验证您的POST。
wget --auth-no-challenge --http-user=USERNAME --http-password=PASSWORD "https://[jenkins-host]/job/[jobname]/buildWithParameters?token=<token defined in job configuration>&<param>=<value>&<param2>=<value2>"
答案 1 :(得分:3)
我也在寻找解决方案。我当前的解决方案是在常规构建中创建2个触发器,一个是夜间构建,另一个是Polling SCM
在声纳插件配置中,它可以跳过由SCM更改触发的构建。因此,只有每晚构建才会开始进行声纳分析。
我现在没有机会测试它,但我认为这样可行。
2011年12月19日更新 如果将声纳分析作为独立构建步骤调用,则上述解决方案不起作用。要使声纳分析有条件地运行,您可以使用以下2个插件: