持续集成:CruiseControl.NET + VisualSVN.Server

  刚换了工作,有需要搭建一套持续集成的平台,做一下总结。

  首先是我用到的工具:

              

  上面缺少了Microsoft Fxcop,可以用来做代码校验,不过实际情况暂时还没有用到。主要的需求目前是,使用已发布的稳定版本代码作为新发布版本代码的基础,避免有未完成的代码存在于发布版本中,同时自动化集成发布后,上传该新发布版本代码到tags中。elevate一般情况下是不需要的,不过VisualSVN无法使用命令行登陆,可以使用它来提升执行权限,不过最终我使用了另外一个办法,这个方法需要购买VisualSVN Server的License,后面会说。

  安装过程就不赘述了,相信有兴趣看这个的都是做软件的,下一步之类还有一些选项什么的没什么可说的。安装的时候部署的监控网站可能不成功,只要自己手动在IIS上布下就好。另外,先提一句CCTray是可以把配置好的集成方案服务添加运行的工具,添加好后本身也具有监控的功能,区别是它客户端工具。

  先说SVN服务器,VisualSVN Server是比较简单的SVN服务端,所以功能比较简单,比如就缺少命令行登陆的功能,不过另一方面就是安装很简单。有两点需要说明一下,一是新建Repository时,勾选分为branches tags trunk三个目录,分别用来放分支代码,发布版代码,主干版本代码,其中tags下的代码是只能新增不能修改的;另外一点是权限问题,我使用的是windows的账户做操作的,在这种情况下,有个选项要勾选上,不然执行svn提交代码命令时,会报错身份验证不通过。

                      

  上图红框就是需要勾选的,不过勾选这个是需要License的。

  接下来就是主题部分了,安装完CC以后,到开始菜单里找到对应的菜单,会发现里面有个配置文件,对应的就是安装好的目录下的ccnet.config文件,另外还有个验证工具,可以用来辅助配置,一目了然的东西就不细说了,下面说说配置。

<cruisecontrol xmlns:cb="urn:ccnet.config.builder"><!-- This is your CruiseControl.NET Server Configuration file. Add your projects below! -->

这里配置服务的名字,一个project对应的就是一个集成方案,可以独立执行<project name="ProjectTest"description="demoproject showing a small config" queue="Q1">
工作使用的目录<workingDirectory>D:\Store</workingDirectory>
这里是正在集成工程中的临时配置文件保存的地方,一次执行结束后,该配置文件会被放到配置的日志文件夹中
   <artifactDirectory>D:\Store\Artifacts</artifactDirectory><!-- specify a state folder to prevent CCNet from saving it in Program Files\CruiseControl.NET\server programs may not standard write their data in it on windows Vista and up)--><state type="state" directory="D:\Store\State" /><!-- specify a artifactDirectory to prevent CCNet from saving it in Program Files\CruiseControl.NET\server programs may not standard write their data in it on windows Vista and up)--> 这是监控页面
<webURL>http://localhost:90/ViewLatestBuildReport.aspx</webURL><modificationDelaySeconds>10</modificationDelaySeconds><triggers><!-- check the source control every X time for changes, and run the tasks if changes are found --><!--<intervalTriggername="continuous"seconds="30"buildCondition="IfModificationExists"initialSeconds="5"/>--><intervalTrigger name="continuous" seconds="6000" /></triggers>
这里是配置获取源码的位置,使用svn<sourcecontrol type="svn"><executable>C:\Program Files\VisualSVN Server\bin\svn.exe</executable><trunkUrl>https://aaa/svn/Test/trunk</trunkUrl><username>svn</username>--登陆svn使用的用户名密码,这个是我在测试服务器上创建的测试账户<password>svn</password><workingDirectory>D:\Store\Code</workingDirectory>--获取下来源码的存放位置<autoGetSource>true</autoGetSource></sourcecontrol><tasks><!-- if you want the task to fail, ping an unknown server -->
这个ping的作用在这里仅仅是测试的时候,改成错的可以让它后面的配置都不执行<exec><executable>ping.exe</executable><buildArgs>localhost</buildArgs><buildTimeoutSeconds>15</buildTimeoutSeconds><description>Pinging a server</description></exec>这里是编译解决方案的配置,也可以每个项目分别编译,projectFile配置成项目的csproj文件就可以
      <msbuild><executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable><workingDirectory>D:\Store\Code</workingDirectory><projectFile>D:\Store\Code\*******.sln</projectFile><buildArgs>/noconsolelogger /p:Configuration=Release;OutDir=D:\Store\Run\ /v:diag</buildArgs><logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger><targets>Build</targets><timeout>900</timeout></msbuild>这是用来配置发布位置的,sourceDir是生成的位置,publishDir是发布的位置可以配置成远程的共享目录
<buildpublisher><sourceDir>D:\Store\Run</sourceDir><publishDir>D:\Store\Release</publishDir><useLabelSubDirectory>false</useLabelSubDirectory></buildpublisher><!--删除.svn文件--> 这个批处理文件时用来清除代码中svn绑定的,因为这份代码需要提交到Tags上,这个批处理代码类似的网上到处都是我就不贴了
<exec executable="D:\Store\delSVN.bat" />
这段注释掉的是单元测试的配置,不过由于原来的代码都没做单元测试,所以就先注释掉了<!--删除单元测试结果文件,否则不会创建新的结果文件<exec executable="D:\Store\delTestResult.bat" />--><!--buildArgs:参数,/testcontainer:单元测试项目程序集(可以包含多个) /resultsfile:测试结果文件<exec><executable>C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\mstest.exe</executable><baseDirectory>D:\Store\UNTest</baseDirectory><buildArgs>/testcontainer:TestProject\bin\Debug\TestProject.dll /resultsfile:TestResults\mstest-results.xml</buildArgs><buildTimeoutSeconds>300</buildTimeoutSeconds></exec>-->提交代码的批处理:

cd /d %~dp0
"C:\Program Files\VisualSVN Server\bin\svn.exe" import -m "New Tags" D:\Store\Code https://aaa/svn/Test/tags/Tags_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%

      <!--提交Tags代码--><exec executable="D:\Store\svnCTags.bat" /></tasks><publishers>
这个是完成后全部的日志
<xmllogger logDir="D:\Store\Log"/> 日志可以配置成发送邮件,不过这里不需要</publishers></project>第二个集成服务
<project name="ProjectTestWithOutGetSource"description="demoproject showing a small config" queue="Q1"><workingDirectory>D:\Store</workingDirectory><artifactDirectory>D:\Store\Artifacts</artifactDirectory><state type="state" directory="D:\Store\State" /><webURL>http://localhost:90/ViewLatestBuildReport.aspx</webURL><modificationDelaySeconds>10</modificationDelaySeconds><triggers><intervalTrigger name="continuous" seconds="6000" /></triggers><sourcecontrol type="svn"><executable>C:\Program Files\VisualSVN Server\bin\svn.exe</executable><trunkUrl>https://aaa/svn/Test/trunk</trunkUrl><username>svn</username><password>svn</password><workingDirectory>D:\Store\Code</workingDirectory><autoGetSource>true</autoGetSource></sourcecontrol><tasks><!-- if you want the task to fail, ping an unknown server --><exec><executable>ping.exe</executable><buildArgs>localhost</buildArgs><buildTimeoutSeconds>15</buildTimeoutSeconds><description>Pinging a server</description></exec><msbuild><executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable><workingDirectory>D:\Store\Code</workingDirectory><projectFile>D:\Store\Code\*******.sln</projectFile><buildArgs>/noconsolelogger /p:Configuration=Release;OutDir=D:\Store\Run\ /v:diag</buildArgs><logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger><targets>Build</targets><timeout>900</timeout></msbuild><buildpublisher><sourceDir>D:\Store\Run</sourceDir><publishDir>D:\Store\Release</publishDir><useLabelSubDirectory>false</useLabelSubDirectory></buildpublisher><!--删除.svn文件--><exec executable="D:\Store\delSVN.bat" /><!--提交Tags代码--><exec executable="D:\Store\svnCTags.bat" /></tasks><publishers><xmllogger logDir="D:\Store\Log"/></publishers></project></cruisecontrol>

最后是我集成使用的测试目录,可以不用自己创建,集成过程中会自己创建的

                    

 

转载于:https://www.cnblogs.com/saaav/p/4003254.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492872.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学会动态丨中国人工智能学会重磅发布《2018人工智能产业创新评估白皮书》

来源&#xff1a;中国人工智能学会摘要&#xff1a;《2018人工智能产业创新评估白皮书》由中国人工智能学会、国家工信安全中心、华夏幸福产业研究院、思保环球联合发布。白皮书聚焦人工智能的使能技术与应用场景两个层面&#xff0c;基于论文、专利、人才、行业壁垒等多个维度…

图像的几种变换简单介绍

刚体变换 平移旋转 保持欧式距离的变换&#xff0c;这意味着图像只进行2D平移和2D旋转运动。它只有3个自由度。 相似变换 平移旋转缩放 相比刚体变换增加了均匀的缩放。均匀的意思是各个方向的缩放比例相同。尺度变换增加了一个自由度&#xff0c;所以自由度为4。和刚体一…

《C语言编写 学生成绩管理系统》

/* (程序头部凝视開始) * 程序的版权和版本号声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名&#xff1a; 学生成绩管理系统 * 作 者&#xff1a; 刘江波 * 完毕日期&#xff1a; 2012 年 6 月 23 日 * 版 本 号&#xff1a; v.62…

人工智能顶刊TPAMI2019最新《多模态机器学习综述》

来源&#xff1a;专知摘要&#xff1a;”当研究问题或数据集包括多个这样的模态时&#xff0c;其特征在于多模态。【导读】人工智能领域最顶级国际期刊IEEE Transactions on Pattern Analysis and Machine Intelligence(IEEE TPAMI,影响因子为 9.455)&#xff0c;2019年1月最新…

编程基本功训练:流程图画法及练习

对于“程序设计”的工作&#xff0c;很多刚開始学习的人的理解就是“写代码”。相同&#xff0c;新手们苦恼的问题是&#xff0c;他们仅仅会“写代码”。当接到一个新的任务&#xff0c;不少人总是在第一时间就爬到键盘上去敲代码。敲着敲着&#xff0c;就把自己绕糊涂了。头晕…

python简单练习 -统计文本词频并用柱状图显示

函数功能&#xff1a;统计文本中单词频率&#xff0c;并用柱状图显示前10个最高的单词 这里统计的是函数所在文件本身 import turtlecount 10 data [] words [] # y yScale 6 # X xScale 30def drawLine(t, x1, y1, x2, y2):t.penup()t.goto(x1, y1)t.pendown()t.goto(x…

今日《科学》封面:纳米级清晰度看大脑是怎样一种体验?

来源&#xff1a;药明康德微信团队摘要&#xff1a;在最新出版的《科学》杂志上&#xff0c;由麻省理工学院&#xff08;MIT&#xff09;和霍华德休斯医学研究所&#xff08;HHMI&#xff09;的科学家们领衔的一支团队&#xff0c;成功对果蝇的完整大脑进行了成像&#xff0c;清…

中国演绎太空生命传奇

来源&#xff1a;人民日报海外版摘要&#xff1a;人类不仅在努力增加对地球家园的认识&#xff0c;而且推进航天科技发展&#xff0c;进入浩渺的太空&#xff0c;探索宇宙的奥秘。在太空中绽放的花朵嫦娥四号搭载的微型生物圈载荷手绘图搭载探空火箭进入太空的两只小狗“小豹”…

李伯虎院士:新一代人工智能引领下的智造制造初步实践

来源&#xff1a;电能革命由中国智能制造百人会主办的“2018智造百强榜高峰会暨2019中国智能制造百人会年会上”于2019年1月11日在北京科技会堂举行。中国工程院院士/国家制造强国战略咨询委员会委员李伯虎做“新一代人工智能引领下的智造制造初步实践”的演讲。以下为演讲的速…

Python中Turtle绘图函数-绘制时钟程序

Turtle常用的一些函数&#xff0c; 参考博客&#xff1a;http://blog.csdn.net/zengxiantao1994/article/details/76588580 时钟代码设计 我们可以通过main函数查看整个时钟代码的设计设计指针&#xff08;Init()&#xff09;并显示指针&#xff1a;设计指针的方向(turtle.m…

5G的未来投资机会在哪里?

来源&#xff1a;网易智能日前&#xff0c;为了更好地以资本助推5G产业发展&#xff0c;中国移动投资公司与中国移动研究院联合发布了《洞见5G&#xff0c;投资未来——中国5G产业发展与投资报告》&#xff0c;分析了5G对生产和生活带来的变革&#xff0c;研判5G产业建设的投资…

python在windows系统中安装pandas,numpy

进入python的安装目录的sripts文件夹下&#xff0c; 在该文件夹下进入命令行&#xff0c;在命令行输入pip install pandas 等待成功安装 转载自&#xff1a;https://www.cnblogs.com/xuqiulin/p/6623154.html

华为5G首席科学家童文 | 5G:万物连接平台 智能世界基石

华为5G首席科学家、华为Fellow童文博士来源&#xff1a;华为2019年是5G产业进入全面商用的关键一年&#xff0c;全球5G网络的部署已经启动。2018年6月&#xff0c;5G独立组网标准冻结&#xff0c;5G完成了第一阶段全功能eMBB标准化工作&#xff1b;12月6日, 中国三大运营商获得…

深度解密:软银孙正义如何成为美国硅谷最有权势之人

来源&#xff1a;腾讯科技摘要&#xff1a;据外媒报道&#xff0c;伊隆马斯克、杰夫贝索斯亦或是马克扎克伯格(&#xff0c;都不如日本亿万富翁孙正义那样&#xff0c;对AI驱动的未来有着最大胆的愿景。在孙正义看来&#xff0c;未来机器将控制着我们的生活方式。为了实现这个愿…

自动驾驶之路已走了多远?一文读懂研究现状

作者&#xff1a;Claudine Badue等编译&#xff1a;机器之心 Panda摘要&#xff1a;自动驾驶载具或将引爆人类的下一次出行方式革命&#xff0c;而我们目前又已经走到了哪一步&#xff1f;近日&#xff0c;巴西圣埃斯皮里图联邦大学的研究者在 arXiv 上发布了一篇自动驾驶汽车研…

真的超越了波士顿动力!深度强化学习打造的 ANYmal 登上 Science 子刊

编译&#xff1a;机器之心深度强化学习开发出的机器人模型通常很难应用到真实环境中&#xff0c;因此机器人开发中鲜少使用该技术。然而这已经板上钉钉了吗&#xff1f;在两天前引发人工智能界关注的 ANYmal 机器人中&#xff0c;其机动性和适应性看起来丝毫不逊色于波士顿动力…

实例化Model的三种方式

转载于:https://www.cnblogs.com/toward-the-sun/p/4030010.html

人形机器人,穷途末路还是光明未来?

来源&#xff1a;任赜宇的知乎专栏摘要&#xff1a;今年 11 月初在北京召开的 IEEE/RAS Humanoids 会议中&#xff0c;作者去听了这样一个 Workshop: Humanoid Robotics: Dead-end or Bright Future? (人形机器人&#xff0c;末路还是光明的未来&#xff1f;) 再结合当前的形势…

全球自动驾驶政策概况及特征研究

来源&#xff1a;《中国信息通信研究院CAICT》近年来&#xff0c;美、欧、日等发达国家和地区将自动驾驶技术作为交通未来发展的重要方向&#xff0c;在技术研发、道路测试、标准法规、政策等方面为自动驾驶及其载体——智能网联汽车的发展提供政策支持&#xff0c;加快自动驾驶…

中心化,去中心化?关乎互联网未来命运的重要选

作者&#xff1a;刘锋 计算机博士 《互联网进化论》作者前言&#xff1a;不知不觉互联网的未来发展出现了分歧&#xff0c;当Facebook、谷歌等互联网巨头越来越强大的时候&#xff0c;反弹的声音也越来越大&#xff0c;人类社会的有识之士希望解决这个问题&#xff0c;由此导致…