您的位置:首页 > 理论基础 > 计算机网络

CruiseControl.NET搭配VisualSVN,使用Https协议下载源代码

2010-12-26 16:57 891 查看
自己搭建一个持续机集成环境时,遇到一个问题,要通过Https访问VisualSVN下的源代码。但是通过如下在CruiseControl的ccnet.config中的设置是行不通的:

<sourcecontrol type="svn" autoGetSource="true">
<executable>C:/Program Files/VisualSVN Server/bin/svn.exe</executable>
<username>kbims</username>
<password>kbims</password>
<trunkUrl>https://cnlab-hgyyq/svn/kbims/trunk/</trunkUrl>
<workingDirectory>D:/NetCruise/project</workingDirectory>
</sourcecontrol>


因为VisualSVN设置的SSL访问,在提取源代码时会通过交互的方式进行。显然,上面这种方式,在CruiseControl.NET下如果要自动构建是不可能的,因为CruiseControl.NET会忽略掉这个交互过程,那么我们的代码也无法下获取。因此,需要通过某种方式,告诉VisualSVN,"我不要提示"。下面的步骤就是帮助如何让交互变“哑”。

第一步:建立路径如下:

C:/Documents and Settings/All Users/Application Data/Subversion

C:/Documents and Settings/All Users/Application Data/是每个系统都有的,我们只要添加Subversion就可以,

第二步:建立一个授权文件:

从VisualSVN的按照目录下,拷贝certs文件夹(如图1)到Subversion下:



图1
拷贝后的Subversion结构(如图2):



图2
第三步:编辑server.pem文件:

用notepad++或者其他编辑器打开该文件,删除前面的--Begin RSA到--end RSA之间的部分,删除后的结果(如图3)保存。注意保存时注意编码,打开是什么编码,保存用什么编码:



图3
第四步:新建文件指明刚才处理的文件:

然后在该文件夹(上面建立的Subversion)下建立一个文件,名字叫“servers”,结果和结构(如下图4)注意没有扩展名!

代码如下:

[global]
ssl-authority-files = C:/Documents and Settings/All Users/Application Data/Subversion/certs/server.pem




图4
最后,测试。此时,切换到ccnet所在目录,键入ccnet测试一下上面的配置:

C:/Documents and Settings/Administrator>cd C:/Program Files/CruiseControl.NET/server/

C:/Program Files/CruiseControl.NET/server>ccnet

可以看到输出可以使用https进行源代码提取,结果如下:
[testCI:DEBUG] Starting process [C:/Program Files/VisualSVN Server/bin/svn.exe] in working directory [D:/NetCruise/project] with arguments [log https://cnlab-hgyyq/svn/kbims/trunk/ -r "{2010-12-26T08:54:18Z}:
--non-interactive]
[testCI:DEBUG] Not setting PriorityClass on [C:/Program Files/VisualSVN Server/bin/svn.exe] to default Normal
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe] <?xml version="1.0"?>
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe] <log>
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe] <logentry
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe]    revision="3">
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe] <author>kbims</author>
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe] <date>2010-12-26T05:22:06.281250Z</date>
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe] <paths>
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe] <path
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe]    kind="file"
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe]    action="M">/trunk/test/Class1.cs</path>
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe] </paths>
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe] <msg></msg>
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe] </logentry>
[11:DEBUG] [testCI C:/Program Files/VisualSVN Server/bin/svn.exe] </log>
。。。。。。。。。。。。。。。。。。。。。。。。。

完毕~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息