只有在存储库中找到更改时才定期生成项目

我有以下设置活动和工作:

  • 詹金斯与Git和声纳插件
  • 一个jenkins工作( project )每分钟轮询Git
  • 一个jenkins工作( project-sonar )每24小时轮询git
  • 两个作业共享相同的git存储库。

    这使我可以为每次提交构建我的项目,然后每天只有在项目发生变化时才运行Sonar分析。

    我最近设置了git存储库,以便在项目发生更改时向Jenkins发送通知,如从存储库推送通知一样。 这会立即构建两个项目,但我只需要构建快速( project )作业。 如果我定期建造project-sonar ,即使没有代码改变,声呐分析也会运行,这是浪费的。

    我该如何保留

  • 立即构建project构建
  • 每日建造用于project-sonar构建

  • 我实现了一些非常类似于使用“Run Condition”插件给jenkins的东西。 https://wiki.jenkins-ci.org/display/JENKINS/Run+Condition+Plugin

    我让声纳工作继续进行投票/建造/测试工作,条件是每天只运行一次。


    我已经使用以下方法解决了这个问题:

  • 所有jenkins项目都是以他们的git存储库命名的(我使用gitolite)
  • 我只激活了基础版本的远程触发器
  • 我在gitolite中添加了一个post-receive钩,它可以做类似的事情

    $CURL --silent --netrc --insecure --connect-timeout 2 "$GIT_REMOTE_TRIGGER_URL/$GL_REPO/build?token=$JENKINS_BUILD_TOKEN" > /dev/null

  • 计划所有声纳作业每24小时轮询一次SCM

  • 链接地址: http://www.djcxy.com/p/62597.html

    上一篇: Build project periodically only if changes are found in the repository

    下一篇: archive old commits