关于Jenkins的Mercurial,安装和配置

时间:2013-07-19 13:34:17

标签: mercurial jenkins centos jelastic

我有一个Mercurial存储库(在Bitbucket上)和一些代码(Java),我想在基于云的Jenkins服务器上进行CI构建(在Monlastic上运行,在CentOS上运行)。我的问题是我无法在Jenkins服务器上正确安装Mercurial。

Jenkins构建失败,并显示以下消息:

  

错误:无法克隆https://bitbucket_jenkins_user:some_password@bitbucket.org/repo_owner/my_repository,因为无法找到hg;检查您是否正确配置了Mercurial安装

设置信息

  1. 这是一个私人Mercurial存储库,托管在Bitbucket
  2. 在Bitbucket中,我已经设置了一个服务,在Push发生之后触发Jenkins构建
  3. 我在Mercurial存储库中定义了一个特定的 bitbucket jenkins用户,它只具有读取权限,并使用简单的https身份验证登录
  4. Jenkins运行在Tomcat 7上,托管在Jelastic云环境中,在CentOS 6上
  5. Mercurial插件是通过Jenkins界面,通过Manage plugins
  6. 安装的
  7. 构建配置为远程触发(通过Bitbucket中定义的服务)
  8. 手动启动和从推送到存储库触发时,构建结果相同
  9. 当我第一次这样做时,我的印象是在Jenkins中安装Mercurial插件就足够了,它还会安装所需的Mercurial二进制文件,以便能够连接到存储库并获取代码。我意识到我错了,在Manage Jenkins / Configure System页面上我需要指定我的Mercurial安装。

    问题

    • 是否可以创建没有ssh访问权限并执行“yum install mercurial”的Mercurial安装?
      • 在Jenkins界面中,选择“自动安装”选项时可以指定哪些内容?
      • 在定义安装程序时,我已尝试使用“Extract zip / tar.gz”选项,但我可以写什么作为“二进制存档的下载URL”?
      • Jenkins还提供“运行命令”的安装程序选项。可能是什么样的命令,可能是“yum install ...”或“rpm ......”?

    由于我的服务器是基于云的,因此获取ssh访问权限是一种付费附加组件,我宁愿避免使用它。但如果那是我唯一的选择,我当然会这样做,从而获得对服务器上运行命令的访问权限。但是,在Centos上运行“yum install mercurial”似乎只给出了Mercurial的1.4版本。当我写这篇文章的当前版本是2.6.3,我是否需要自己下载源代码并自行编译或者是否可以将其作为Centos的二进制文件获取?

1 个答案:

答案 0 :(得分:2)

Mercurial插件页面有一节介绍如何使用自动安装选项使用ArchLinux软件包安装Mercurial。

  

“该插件支持Mercurial安装的通用工具自动安装方法,但它不发布Mercurial版本的目录。对于Linux机器的用户(预装了Python),您可以使用ArchLinux软件包。例如, /在Mercurial安装下配置,使用您喜欢的任何名称添加Mercurial安装,Executable = INSTALLATION / bin / hg,自动安装,运行命令,Label = linux(如果需要将此限制为使用相同标签配置的从属),Command = [-d usr] || wget -q -O - http://www.archlinux.org/packages/extra/i686/mercurial/download/ | xzcat | tar xvf - (或... / x86_64 / ...适用于64位从站),Tool Home = usr,并使用此安装配置作业绑定到Linux奴隶。“

请参阅https://wiki.jenkins-ci.org/display/JENKINS/Mercurial+Plugin