首页 文章

如何从Jenkins中的shell任务向SVN服务器进行身份验证?

提问于
浏览
1

我有jenkins设置连接到SVN服务器和我想要的一个工作 svn updatesvn commit .

我在shell任务中执行此操作,但它失败了 . 当我打电话给:

svn update

我收到以下错误:

身份验证领域:http:// svn ...:80'jenkins'的Subversion存储库密码:身份验证领域:http:// svn ...:80 Subversion存储库用户名:svn:'http:// svn的选项 . ..':授权失败:无法对服务器进行身份验证:拒绝基本质询

我已经用Google搜索并在线查看,但我尝试纠正我的问题并没有成功 . 我宁愿不在命令行上传递 --username--password ,我认为应该至少有两种方法来设置它:

  • 使用'global' Linux / SVN Jenkins用户缓存或类似的东西
    通过从Jenkins传递凭据

我没有尝试按照这两个选项的说明进行操作 .

有人可以解释一下,即使像我这样的傻瓜也能理解 - 如何配置Jenkins和我的工作能够从连接到SVN的作业中的shell任务 svn updatesvn commit .

EDIT 我被要求实现的是对一些实际上不属于构建的文件运行某种处理 - 但是我们希望受控'build machine'进行处理 - 而不仅仅是任何开发人员进行处理和提交 .

这是一个手动触发的作业,需要一些输入,进程,然后将生成的文件推送到svn .

(我不知道为什么这样做 - 我被带来帮助修复他们的构建等等...)

2 回答

  • 0

    您将需要考虑使用ssh auth,这将允许您避免传递用户名和密码 - 只要密钥存在 .

    可能值得一看为什么你要做一个svn up和svn commmit形成一个shell步骤 .

    我建议使用scm插件来获取源代码 - 只要你做了 svn up jenkins就无法知道变更集 .

    提交也可能是另一种气味 . 如果没有标记,那么推向svn的构建可能会有更好的路径 . 对于其中一个 - 您将不得不想象一下触发构建的钩子,或者它将是一个循环 .

  • 0

    我也面临同样的问题,从svn结账后运行.sh(更新数据库脚本),我不知道是否必须通过命令行或其他东西传递用户 .

    在我的情况下,我添加.sh调用两个包含用户名和密码的aditional参数并使用它们 .

相关问题