You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins配置Mercurial SSH仓库及通知功能遇克隆错误求助

问题定位与解决步骤

1. 先修复仓库地址错误

从你提供的错误日志能看到,Jenkins执行的命令把完整的克隆命令填成了仓库地址,Mercurial插件只需要纯仓库SSH URL,不需要带hg clone和本地路径:

hg --config ******** clone --rev default --noupdate "hg clone ssh://mercurial@XXXXX.XXXXX.com/repositories/XXXXX /home/XXXXX/mi-repo" /var/lib/jenkins/workspace/TestRepo

操作:

  • 打开TestRepo项目的配置页面
  • 找到Mercurial仓库配置项,将仓库URL修改为纯SSH地址:ssh://mercurial@XXXXX.XXXXX.com/repositories/XXXXX
  • 保存配置后尝试构建,先排除地址错误问题

2. 配置Jenkins的SSH密钥(解决权限/验证问题)

你本地终端能正常克隆,但Jenkins默认以jenkins用户运行,不会使用你个人用户的.ssh密钥,需要把密钥配置到Jenkins用户环境中:

步骤1:复制密钥到Jenkins用户的.ssh目录

  • 切换到jenkins用户:
    sudo su - jenkins
    
  • 创建并配置.ssh目录权限:
    mkdir -p ~/.ssh && chmod 700 ~/.ssh
    
  • 复制你的私钥文件到该目录,设置正确权限:
    cp /path/to/your/id_rsa ~/.ssh/
    chmod 600 ~/.ssh/id_rsa
    
  • 添加远程仓库主机指纹到known_hosts,避免首次连接的确认提示:
    ssh-keyscan XXXXX.XXXXX.com >> ~/.ssh/known_hosts
    chmod 644 ~/.ssh/known_hosts
    
  • 退出jenkins用户:exit

步骤2:全局配置Mercurial的SSH参数

  • 进入Jenkins全局配置(Manage Jenkins -> Global Tool Configuration)
  • 找到Mercurial配置区域,在「Additional configuration parameters」中添加:
    ui.ssh=ssh -i /var/lib/jenkins/.ssh/id_rsa
    
    该配置会让Mercurial使用jenkins用户下的私钥完成SSH连接。

3. 配置邮件与Slack通知

邮件通知配置

  • 进入Manage Jenkins -> System Configuration
  • 找到「Extended E-mail Notification」:
    • 配置SMTP服务器、端口、邮箱账号密码等认证信息
    • 设置默认收件人、邮件主题及内容模板
  • 在项目配置中添加「Editable Email Notification」构建后操作,触发条件选择「Success」,指定通知收件人

Slack通知配置

  • 进入Manage Jenkins -> System Configuration
  • 找到「Slack」配置区域:
    • 填入Slack团队域名、API令牌(从Slack工作区创建机器人获取)
    • 设置默认通知频道
  • 在项目配置中添加「Slack Notification」构建后操作,勾选「Send Notification when build is successful」

内容的提问来源于stack exchange,提问作者Luis M. Corral

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 12:52:37