注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

写着玩

Bob

 
 
 

日志

 
 
 
 

自动编译与自动发布  

2009-01-15 18:36:04|  分类: 管理 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

由于工作的需要,想建立一个自动编译和发布系统,环境

windows XP +sp3+IIS5, svn服务器

最初的想法是自己写一个程序,利用svn的api,搜索了下svn api感觉不是很友好。例子程序竟然在debug下跑不起来,release倒是好的。直觉上应该有更好的方案,google了一把,发现前人已经有人种树了。CruiseControl和CruiseControl.NET两个,开始没找到CruiseControl.NET,于是下载了CruiseControl,安装,web访问都米问题,开始配置,hoho,那个麻烦,搞了一天未果,网上的文档不是太简单就是太复杂又没心思读官方文档。于是作罢。后来找到CruiseControl.net,花了半天时间搞定。

1.需要的软件

CruiseControl.NET,下载地址:http://ccnetlive.thoughtworks.com/CCNet-builds/1.4/1.4.0.3769/CruiseControl.NET-1.4-Setup.exe

subversion,从同事那搞了一个。下载网上应该不少.

2.安装

两个都没啥特别的,一路next就ok

3.配置

<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
  <project name="project1">

    <webURL>http://127.0.0.1/ccnet</webURL>
    <workingDirectory >E:\autocomp\project1</workingDirectory>
    <artifactDirectory>E:\autocomp\buildlog</artifactDirectory>
    <labeller type="dateLabeller"></labeller>
    <!--代码服务器配置->
    <sourcecontrol type="svn">
     <!—svn 服务器地址->
      <trunkUrl>http://svn.xxxx.com/project1</trunkUrl>
      <!—svn.exe的位置->
      <executable>C:\Program Files\Subversion\bin\svn.exe</executable>
      <username>autobuild</username>
      <password>123456</password>
    </sourcecontrol>
    <tasks>
      <!--采用vs来编译,未安装vs的可以采用msbuild->
      <devenv>
        <solutionfile>E:\autocomp\project1\solution\project1.sln</solutionfile>
        <!--编译参数release版还是debug版->
        <configuration>Release</configuration>
        <!--编译参数,Build表示编译,另外还可以用Rebuilt或Clean->
        <buildtype>Build</buildtype>
      </devenv>
    </tasks>

    <state type="state" directory="E:\autocomp\buildlog"/>
    <publishers>
     <!--发布,表示编译后拷贝编译结果->
      <buildpublisher>
        <sourceDir>E:\autocomp\project1\bin\release</sourceDir>
        <publishDir>E:\autocomp\output</publishDir>
        <!--由于编译后的结果需要check in会svn,因此编译结果不放入子目录,每次直接覆盖->
        <useLabelSubDirectory>false</useLabelSubDirectory>
      </buildpublisher>
      <!--这个很重要哦,表示生成编译log,没有这句话,web查看时会出错->
      <xmllogger logDir="E:\autocomp\buildlog" />
      <exec>
       <!--发布后执行的动作,将编译结果commit回svn服务器->
        <executable>svn</executable>
        <baseDirectory>E:\autocomp\output</baseDirectory>
        <buildArgs>commit -m autobuild</buildArgs>
      </exec>
    </publishers>
  </project>

<!--可以配置多个project->

</cruisecontrol>

4.遇到的问题

配置好后发现web无法访问

a。因为IIS是在.net framework 2.0(随vs2005装的)之后装的,因此需要执行以下命令:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

b。执行上面命令后可以访问,但是项目信息无法查看
   原因上面已经提到,需要加入 <xmllogger logDir="E:\autocomp\buildlog" />

c。本机可以访问web,但是内网其他机器无法访问,查看防火墙,发现机器加入域后无法关闭防火墙,将ccnet程序加入允许也不行,退出域,其他机器访问OK

d。web里有时候强制编译不行,但是cctray每次都可以,原因未知

5.其他机器如果不喜欢使用web访问也可以安装CruiseControl.NET CCTray 下载地址:

http://ccnetlive.thoughtworks.com/CCNet-builds/1.4/1.4.0.3769/CruiseControl.NET-CCTray-1.4-Setup.exe

安装之后在setting里设置一下就ok了

  评论这张
 
阅读(807)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017