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 做一个
curl
或 wget
到 http://JENKINS_URL/JOB_URL/poll
我正在使用 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 做一个
curl
或wget
到http://JENKINS_URL/JOB_URL/poll