如何配置TeamCity使用SVN Export而非SVN Checkout?
如何让TeamCity执行svn export而非svn checkout?
我之前也碰到过这个困扰——TeamCity默认的VCS检出模式里确实没有直接提供svn export的选项,但咱们可以通过自定义构建步骤绕开这个限制,实现用export替代checkout来提升速度,具体操作如下:
第一步:修改VCS检出模式
进入你的构建配置,找到VCS设置,把检出模式改成Do not checkout files automatically。这一步是告诉TeamCity不要自动执行checkout操作,交给我们自己的步骤来处理代码获取。第二步:添加自定义命令行构建步骤
在构建步骤里新增一个「命令行」类型的步骤,然后在「运行」字段里填入svn export的命令,比如:svn export --force %vcsroot.url%@%build.vcs.number% ./build-workspace这里解释一下关键参数:
--force:如果目标目录已经存在,强制覆盖里面的内容,避免因为目录存在导致命令失败%vcsroot.url%:TeamCity内置参数,自动获取你配置的SVN仓库地址%build.vcs.number%:内置参数,获取当前要构建的版本号(比如commit的rev号)./build-workspace:指定导出的目标目录,你可以根据自己的构建需求修改路径
第三步:处理SVN认证(如果需要)
如果你的SVN仓库需要账号密码验证,可以在命令里加上认证参数,但建议把敏感信息存在TeamCity的保密参数里,比如:svn export --force --username %svn.username% --password %svn.password% %vcsroot.url%@%build.vcs.number% ./build-workspace记得在TeamCity的「构建参数」里创建
svn.username和svn.password,并把svn.password设置为「保密」类型,避免明文泄露。
这样设置之后,TeamCity就会在构建时执行svn export而不是默认的checkout,跳过了.svn目录的创建和同步,速度会比checkout快很多,特别适合那些不需要保留版本控制信息的构建场景。
内容的提问来源于stack exchange,提问作者AlexW
相关产品推荐
相关产品推荐

