云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

谷歌云_亚马逊云服务器租用多少钱_促销

小七 141 0

有条件请求生成

这是Andrew Phillips的一篇客座博客文章,他是ApacheJClouds的长期成员项目。AtApache jclouds,我们使用云开发作为我们请求评审过程的一部分(再次感谢CloudBees!)。我们的作业配置为使用经过验证的合并插件触发对存储库的拉取请求。问题是:不同分支上的Java版本不同我们最近的1.8.0版本是支持Java 6的最后一个jclouds版本,在发布之后,我们立即将主分支转移到针对Java7的编译中,并开始使用一些Java7特色。这个把拉请求构建器的工作放到一个棘手的问题上位置:拉动请求反master将不再使用Java6编译,我们仍然希望运行Java6作业来处理对旧分支的任何请求。"简单!"您可能会说:"只需将Java6作业设置为只触发针对非主分支的pull请求。"这也是我们的想法。只是:似乎实际上没有办法使用经过验证的合并来实现这一点插件。运行条件和条件BuildStep插件来拯救!多亏了CloudBees的Michael Neale的提示,我们查看了Conditional BuildStep插件(它依赖于Run Condition插件添加的一个扩展点),看看会有什么结果去吧。那个ConditionalBuildStep插件允许您添加一个或多个依赖于某个条件的构建步骤:如果条件是不满足,您可以选择如何处理构建(失败、跳过条件步骤但继续等)。插件支持多种条件类型,包括基于时间的比较("不在工作日运行")和值测试("此环境变量或输入参数是否匹配此正则表达式?")。我们使用kitchen sink Execute Shell条件是因为我们实际上在检查POM中的编译目标版本1.6,这对我们来说是一个更准确的检查,然后简单地确定我们当前在哪个分支上:如果您真的希望在pull请求已打开的分支上进行特定的筛选,您只需在条件中检查$GIT_BRANCH环境变量的值。此值由已验证的合并插件自动设置为正确的价值。一厢情愿思考!这个解决方案运行得很好,几乎可以满足我们的需要,但它并不完美:你仍然需要安装和配置插件,你的工作需要是一个自由风格的项目,理想情况下,如果针对"错误"打开拉请求,您根本不希望触发构建分支机构Git插件已经支持许多高级选项,比如忽略对特定路径或特定用户的提交,如果经过验证的合并插件能够在未来。——安德鲁·菲利普斯,阿帕奇·伊克劳兹。