Tag: hudson

Jenkins CI – SSL handshake_failure

我正在尝试配置Jenkins CI以执行我们项目的持续集成,并且无法通过https连接到我们的SVN存储库。 每当我尝试配置存储库URL并尝试连接时,我都会遇到以下exception: org.tmatesoft.svn.core.SVNException: svn: OPTIONS /svn/repo/path failed at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:291) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:276) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:264) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:516) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:98) at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1001) at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:97) at hudson.scm.SubversionSCM$DescriptorImpl.checkRepositoryPath(SubversionSCM.java:1966) at hudson.scm.SubversionSCM$DescriptorImpl.doCheckRemote(SubversionSCM.java:1900) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:282) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:149) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:88) at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:563) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:648) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241) at […]

在ant junit任务中更改工作目录

我有一个运行JUnits测试的ant文件。 这些测试依赖于某些配置文件的相对路径。 我已经尝试为批处理测试设置工作目录,但是失败了。 我希望工作目录为${plugins.dir}/${name} Ant脚本的JUnit部分: 我用谷歌搜索和搜索,但我找到的解决方法是设置“dir”,“sysproperty”或“jvmarg”。 如你所见,我已经尝试过所有:) 有没有办法在标签中打印当前目录? 它不支持。 这将允许我validation目录是否实际改变了什么。 这个等式中的一个通配符是,这是在Hudson中运行的,它启动了一个启动atrunner的eclipse过程。 这样我们就可以运行junit和eclipse插件junit测试了。 我认为不应该与这个问题有任何关系。

Groovy Classpath上的Jenkins包?

当使用Groovy Jenkins插件(不是Groovy Post Build Plugin,这是一个不同的东西)作为Post Step时,我无法解析hudson.model包中的类。 我是否需要将Jenkins .war添加到类路径中,或者这些包是否已经存在? 脚本: import hudson.model.*; import hudson.util.*; AbstractBuild currentBuild = (AbstractBuild) Thread.currentThread().executable; def mavenVer = currentBuild.getMavenArtifacts().getModuleRecords()[0].mainArtifact.version; println mavenVer; ParametersAction newParamAction = new hudson.model.ParametersAction(new hudson.model.StringParameterValue(“MAVEN_VERSION”, mavenVer)); currentBuild.addAction(newParamAction); 输出: [Common] $ /home/tester/tools/Groovy_1.8.3/bin/groovy /home/tester/workspace/Common/hudson8369102960709507246.groovy org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: /home/tester/workspace/Common/hudson8369102960709507246.groovy: 8: unable to resolve class AbstractBuild @ line 8, column 15. AbstractBuild currentBuild = […]

我的构建可以规定我的代码覆盖范围永远不会变得更糟吗?

我正在使用hudson CI来管理一个直接的java web项目,使用ant来构建。 我想要求unit testing覆盖率永远不会比以前的构建更差,从而确保始终测试任何新代码,或者至少覆盖范围不断改进。 是否有一个以这种方式工作的哈德森插件? 编辑:我目前正在使用艾玛,但愿意切换到另一个覆盖应用程序。 另外,作为一个澄清,我已经看到了一些Hudson插件的阈值,但这并不是我所追求的。 例如,我想要的是,如果Build#12的覆盖率总体上是46%,并且有人在Build#13中检查了45%的覆盖率,则构建将会中断。 我想这样做的原因是我有一个测试覆盖率低的代码库。 我们没有时间回过头来追溯写unit testing,但我想确保覆盖率不断提高。 更新:Dan用我的计划指出了一个边缘案例肯定会成为一个问题。 我想我需要重新考虑这是否是一个好主意。

是否有(自动)方式备份Hudson CI文件?

在我的公司,我们有三台Hudson CI服务器,配置了100多个作业。 我们正在寻找一种定期备份作业配置和构建历史记录的自动方式。 目前我们有一个我们配置为作业的ant脚本,但它不容易维护而且不优雅。 有没有人找到办法管理这个?

在Hudson或其他CI工具中使用Ant自动检出和编译Eclipse项目的最佳方法?

我们有几个产品有很多共享代码,必须保留多个版本。 为了解决这个问题,我们使用了很多Eclipse项目,其中一些包含库jar,还有一些包含共享源代码(在几个项目中,为了避免获得具有大量依赖关系的巨大堆,同时能够从头开始编译所有内容以确保源和二进制文件是一致)。 我们使用projectSet.psf管理那些,因为这些可以直接从CVS中拉出所有项目并留下完全准备好的工作区。 我们不直接进行ant构建或使用maven。 我们现在希望能够将所有这些项目及其各种版本放在一个连续集成工具中 – 我喜欢Hudson但这只是一个品味问题 – 这实际上意味着我们需要一种自动方式来检查项目到一个新的工作区,并按照每个项目中的项目文件中的描述编译源文件夹。 Hudson没有提供这样的方法来构建项目,所以我一直在考虑采用这种方法的最佳方法。 想法已经存在 查找或编写一个了解projectSet.psf并映射到cvs-checkout和编译标签的ant插件/转换器。 从Eclipse中创建build.xml文件并使用它们。 我试过这个,发现结果很冗长,绝对位置不好用自动工具把文件放在他们想要的地方。 编写一个了解projectSet.psf的Hudson插件来派生配置并构建它。 只要咬紧牙关并在东西破裂时手动创建和更新CI配置 – 我不喜欢这个:) 我真的很想知道其他人的经历,所以我可以决定如何处理这个问题。 编辑:另一个选项可能是使用CI,它更了解Eclipse项目和/或项目集。 我们没有宗教信仰 – 这只是让自己无需自己动手就可以运行的问题。 巡航控制会是一个更好的选择吗? 其他? 编辑:发现ant4eclipse有一个“团队项目集”工具。 http://ant4eclipse.sourceforge.net/ 编辑:使用ant4eclipse和ant-contrib ant扩展来构建一个完整的工作区作为一个sjgned runnable jar文件,类似于Eclipse 3.5M6中的Runnable Jar工具。 我仍然依赖于Eclipse来创建初始的空工作空间,并提取ProjectSet,这是下一个障碍。 编辑:使用双配置结束,即Hudson从CVS中提取与ProjectSet.pdf文件中列出的相同的模块集(需要具有相同的标记),使它们彼此相邻。 然后ant4eclipse与嵌入在主模块中的projectSet.psf文件很好地配合。 警告:Hudson中的模块列表必须手动更新,之后需要手动工作区清理才能让Hudson“发现”现在有比以前更多的项目。 这对我们来说已经好几个月了,但是让一切都在ant文件中运行是相当繁琐的。 编辑:使用ant4eclipse的“使用团队项目”和项目面板中的Ctrl-A,Ctrl-C以及Hudson的CVS项目中的Ctrl-V已经certificate可以很好地满足我们的需求(对于成熟项目而言很少改变)。 我正在等待ant4eclipse 1.0的发布 – http://www.ant4eclipse.org/ ,目前在里程碑2中 – 看看有多少本土function可以被ant4eclipse的东西取代。 编辑:ant4eclipse是在M4的20100609,所以http://www.ant4eclipse.org/node?page=1的时间表有些滑落。 编辑:使用我们的ant4eclipse方法更长时间后的结论是构建脚本变得非常粗糙并且难以维护。 团队ProjectSet工具(ant4eclipse用于定位项目)也适用于基于CVS的存储库,但在我们迁移到git之后却没有(这本身就是一件大事)。 新项目很可能基于maven,因为这在Jenkins中得到了很好的支持。

如果超出Sonar阈值,我如何让Hudson / Jenkins失败?

我正在使用maven构建我的Java应用程序,Jenkins用于CI和Sonar用于指标。 目前我有一个构建作业,可以创建声纳报告。 (通过Jenkins中的构建后步骤触发。) 如果达到某些阈值,我想将此设置为失败,即任何主要或阻止程序违规或复杂程度超过1.7。 任何指导将不胜感激! – L.

maven中的多个部署

我们有一个内部的神器库。 目前所有快照都将部署在那里。 我们还希望拥有一个具有Web界面的不同服务器,并希望将创建的工件复制到其中。 对于我们的构建,我们使用Hudson,但是后构建操作“将构件部署到Maven存储库”与scp一起不起作用。 所以有一个问题是以其他优雅的方式做到这一点。 为什么maven不能拥有多个分发存储库? 有任何想法吗? 最好的方法是,如果artifactory在每次新部署后都支持(自动!)增量导出到标准maven存储库。

Jenkins使用什么密码加密?

我正在修改Jenkins作业的xml。 有一个字段是密码。 当我得到xml时,它是原始密码,现在有一个哈希。 我需要知道如何从原始密码值创建此哈希。 user zlvnUMF1/hXwe3PLoitMpQ6BuQHBJ1FnpH7vmMmQ2qk= 我一直在阅读Jenkins 源代码 ,我认为HudsonPrivateSecurityRealm.java类涉及但我不确定salt参数。 PS:这不适用于Jenkins密码是针对一个插件,在作业配置中它有一个密码字段。