繁体   English   中英

Jenkins SVN导出构建步骤

[英]Jenkins svn export build step

在我的Jenkins服务器上,我有一个项目,该项目从SVN中检出一些源代码,并运行一个名为MakeInstaller.ps1的生成脚本,该脚本与源代码一起检出。 这很简单,这部分效果很好。

不能正常工作的是,MakeInstaller.ps1的一部分试图对某些其他源代码的特定修订版进行svn导出,但是它没有连接到SVN的凭据。 当我在PC上运行构建脚本时,这完全没问题,因为Tortoise SVN已缓存凭据。

Jenkins已经拥有我的SVN凭据,但是仅在Jenkins签出源代码时使用,而在我的构建脚本尝试签出源代码时才使用。

我试过了:

  1. 在运行Jenkins的计算机上安装Tortoise SVN命令行工具。 这修复了我最初的“找不到svn.exe”错误,但是它无法知道我对此服务器的凭据
  2. 我什至在那台机器上使用Tortoise SVN登录到SVN服务器,尝试使其获取缓存的凭据,但仍无法正常工作。 我猜这是因为Jenkins服务没有在我登录时所使用的同一用户下运行。

我觉得我走错了路。 在Jenkins SVN插件已经在使用的SVN客户端旁边,在该计算机上安装Tortoise SVN似乎有点奇怪。

我的问题:有没有办法从Jenkins的内部构建脚本中导出SVN,并使用Jenkins已经知道的凭据进行导出? 我可以使用与Jenkins SVN插件相同的svn.exe吗? 我真的不想在构建脚本本身中包含凭据。

我发现的大多数类似问题都涉及由于凭证不正确而导致的初始签出失败,而不是作为构建脚本的一部分发生的签出。

最后,我最终做了类似Jenkins的操作:在powershell中访问全局密码

我必须使用EnvInject,因为当我尝试保存项目时,凭据绑定插件给我一个错误。 这涉及将我的SVN密码的另一个实例添加到Jenkins,并将Jenkins用户名硬编码到我的构建脚本中,但是它可以正常工作。

现在,构建脚本尝试使用虚拟svn info命令进行身份验证。 如果我在本地计算机上运行脚本,则该脚本可以正常运行,并且无需用户名或密码即可继续运行。 如果dummy svn info命令失败,它将尝试使用--username Jenkins和--password $ env:svnpassword登录,其中svnpassword环境变量由EnvInject提供。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM