Jenkins 条件部署

Jenkins Conditional Deployment

我正在使用 Jenkins 创建夜间构建并将它们部署到我的 Maven 存储库。为了减少开发人员的日常带宽,我想更改部署逻辑,以便仅在检测到参考我们最新部署的更改时才部署它。

我发现了一些看起来合适的插件,但由于我不太了解 Jenkins 的可用性,所以我想问一下是否有 "easy" 方法来实现它?

在执行部署过程之前,我考虑了一些简单的测试: 检查项目代码或依赖项是否有更改

=> 否:则不应部署任何内容

=> 是:部署新版本

我刚刚被 Conditional BuildStep 插件迷住了。但我不确定这个插件是否最适合我们的方法。我不想弄乱整个配置。

仅供参考:我正在使用 Jenkins 1.608、Tortoise SVN 和 deploy-Plugin 1.1

非常感谢您的回答和帮助!

  • 将您的作业设置为 运行 每晚(当前配置)
  • 设置条件构建步骤(shell 或批处理,取决于您的 OS),它将检查存储库中的修订号并与工作区中的当前修订号进行比较。
  • 如果不是更高,请退出构建。
  • 如果更高,照常继续构建

编辑:
为了避免构建甚至被触发,这是一个理论上的解决方案。

  • 安装 Poll SCM Now 插件,这将向作业添加一个 "poll now" 按钮,轮询 SCM 进行更改。如果发现更改,则会触发构建,如果没有,则什么也不会发生。
  • 配置匿名用户的轮询权限(否则您需要在后续步骤中实施login/token)
  • 将作业配置为不经常轮询 SCM(例如一年一次)
  • 为夜间计划配置 cron 作业(或 Windows 中的计划任务)
  • 让 cron/task 做一个 curlwgethttp://JENKINS_URL/JOB_URL/poll