我已经设置jenkins连接到SVN服务器以及我希望svn update
和svn commit
的一项工作。
我在shell任务中执行此操作,但它失败了。当我打电话给:
svn update
我收到以下错误:
身份验证领域:http://svn...:80 Subversion存储库 'jenkins'的密码:身份验证领域:http://svn...:80 Subversion存储库用户名:svn:“http://svn ...”的选项: 授权失败:无法对服务器进行身份验证:已拒绝基本 挑战
我用谷歌搜索并查看了在线,但我试图纠正我的问题并没有成功。我宁愿不在命令行上传递--username
和--password
,我认为应该至少有两种方法来设置它:
我没有尝试按照这两个选项的说明进行操作。
有人可以解释一下,即使像我这样的傻瓜也能理解 - 如何配置Jenkins和我的工作能够从一个连接的工作中的shell任务svn update
或svn commit
到SVN。
修改 我被要求实现的是对某些不是构建的一部分文件运行某种处理 - 但是我们需要一个受控的“构建机器”来进行处理 - 而不仅仅是任何开发人员来进行处理和提交。
这是一个手动触发的作业,需要一些输入,进程,然后将生成的文件推送到svn。
(我不知道为什么会这样做 - 我被带来帮助修复他们的构建等等...)
答案 0 :(得分:0)
您希望查看使用ssh身份验证,只要密钥存在,这将允许您避免传递用户名和密码。
可能值得一看为什么你要做一个svn up和svn commmit形成一个shell步骤。
我建议使用scm插件来获取源代码 - 只要你做svn up
,jenkins就无法了解变更集。
提交也可能是另一种气味。如果没有标记,那么推向svn的构建可能会有更好的路径。对于其中一个 - 您将不得不使用触发构建的钩子,或者它将成为一个循环。
答案 1 :(得分:0)
我也面临着同样的问题,在从svn签出后运行.sh(以更新数据库脚本),我不知道是否必须通过命令行或其他方式传递用户。.>
在我的情况下,我在.sh调用中添加了两个包含用户名和密码的附加参数,并使用了它们。.