• DailyBuild搭建记录


    DailyBuild搭建记录

     

    DailyBuild搭建记录

    1 DailyBuild搭建记录

    公司要搭建DailyBuild工作环境,进行持续化集成开发,持续化集成工具便是服务于敏捷 软件开发的一个系列。它主要将原本分散,无序的工作流程,通过工具软件有机的组织起 来,并且在组织的过程中,参与开发设计测试的各个部门的人员都能从中获取到自动化方 面的优惠,使得团队的工作效率大大提升,方便分布式开发,以下是搭建过程记录。

    测试环境:

    • 开发机器:192.168.0.102,winxp sp2.0+vs2005
    • svn服务器:192.168.0.101,debian/linux

    1.1 下载

    1.2 安装

    • 确保你的电脑上已经安装了IIS(因为CC.NET会在IIS里面建立一个虚拟目录作为Web服务, 我的机器中没有IIS,手头又没有xp光盘,在网上找了个不用光盘安装IIS的方 法,http://www.52z.com/soft/22412.html ,才把IIS安装好
    • IIS中注册asp.net服务,在winsods运行框內输入: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnetregiis.exe -i
    • CruiseControl.NET-1.8.3.0是目前最新版本,需要.net framework3.5类库支持,安装 framework 3.5环境
    • OK,现在可以安装cc.net服务器端和客户端,默认会把CCNET安装为WINDOWS服务,手动启 动,请改为自动启动。还会在IIS下安装一个 webdashboard,可以通过WEB访问CCNET,并 可以进行相关的强制构建,查看日志及其他的管理等。
    • 安装成功,不要高兴太早。你打开IIS看看你的默认的web站点下面有名为ccnet的虚拟目录 吗,如果有,右键浏览,出现如图所示的界面,才能说cc.net安装成功了,否则是前面的 哪个步骤有问题,我在这里耗了不少时间

    latex-table

    1.3 初级配置

    • cc.net安装目录下有Example目录,其中的配置文件可以供参考。主配置文件为:ccnet.config。 一般来说ccnet.config每个构建项目有如下几部分:触发器(triggers),源码管理器 (sourcecontrol),任务(tasks),测试(test)等
    • 我已有一个实际的项目,在D:\workspace\temperApplication\temper目录下,打算建 立一个的cc.net工作模式,使用定时(30秒)触发,使用filesystem源码管理,用 MSBuild构建,用NUnit测试
    • 定时(30秒)触发

      项目名称MyFirstProject,触发设置为毎30次,buildCondition选项为 IfModificationExists表示仅当检测到文件修改时才进行构建。

    <project name="MyFirstProject"
    description="demoproject showing a small config">
    
    <triggers>
    <!-- check the source control every X time for changes, 
    and run the tasks if changes are found -->
    <intervalTrigger
    name="continuous"
    seconds="30"
    buildCondition="IfModificationExists"
    initialSeconds="5"/>
    </triggers>
    ...
    
    • filesystem源码管理

      这里对源码管理简化,不用版本控制,cc.net只判断 `D:\workspace\temperApplication\temper'目录下文件是否有修改,如有修改,构 建就会开始

    <sourcecontrol type="filesystem">
      <repositoryRoot>D:\workspace\temperApplication\temper</repositoryRoot>
      <checkRecursively>false</checkRecursively>
    </sourcecontrol>
    
    • 用MSBuild构建
    <tasks>
      <msbuild>
        <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
        <workingDirectory>D:\workspace\temperApplication\temper</workingDirectory>
        <projectFile>temper.sln</projectFile>
        <buildArgs></buildArgs>
        <targets></targets>
        <timeout>60</timeout>
        <logger>d:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
      </msbuild>
    </tasks>    
    

    MSBuild在`C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\'目录下,buildArgs 表示传递给构建程序的参数。

    <logger>d:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
    

    `ThoughtWorks.CruiseControl.MSBuild.dll'是一个CCNET的日志 插件,用于转换 MSBuild的输出为XML格式。

    • 我们最终的ccnet.config配置是如下,现在我们已经可以感受一下cc.net了
    <cruisecontrol xmlns:cb="urn:ccnet.config.builder">
      <!-- This is your CruiseControl.NET Server Configuration file. Add your projects below! -->
    
      <project name="MyFirstProject"
               description="demoproject showing a small config">
    
        <triggers>
          <!-- check the source control every X time for changes, 
               and run the tasks if changes are found -->
          <intervalTrigger
             name="continuous"
             seconds="30"
             buildCondition="IfModificationExists"
             initialSeconds="5"/>
        </triggers>
    
        <sourcecontrol type="filesystem">
          <repositoryRoot>D:\workspace\temperApplication\temper</repositoryRoot>
          <checkRecursively>false</checkRecursively>
        </sourcecontrol>
    
        <tasks>
          <msbuild>
            <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
            <workingDirectory>D:\workspace\temperApplication\temper</workingDirectory>
            <Projectfile>temper.sln</projectFile>
            <buildArgs></buildArgs>
            <targets></targets>
            <timeout>60</timeout>
            <logger>d:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
          </msbuild>
        </tasks>    
    
        <publishers>
          <xmllogger />
          <artifactcleanup cleanUpMethod="KeepLastXBuilds"
                             cleanUpValue="50" />
        </publishers>
    
      </project>
    
    </cruisecontrol>
    
    • 打开在浏览器中输入`http://http://127.0.0.1/ccnet/' 会出现cc.net的管理界面, 我们要修改一下`D:\workspace\temperApplication\temper'目录下的文件 Awareness.cs,可以在浏览器中看到构建情况和细节

    latex-table

    latex-table

    latex-table

    • 可以安装cc.net的客户端,CCTray:添加服务器及项 目:File->Settings->BuildProjects->Add->Add Server。选一个连接类型,输入相应 的服务器地址或URL,再从Available Projects列表中选择相应的项目点击“OK“即可。 这样就可以在CCTray的主界面的列表中看到刚添加的项目,可以进行强制构建,停止构 建等活 动,还可以看到构建的状态,失败红色,进行中黄色,成功绿色。还可以选择 一些其他的如声音提示等。

    1.4 svn配置

    • 安装Slik-Subversion-1.7.8-win32.msi,这是svn命令行工具,TortoiseSVN客户端 GUI。cc.net要用svn命令行工具。
    • 我的svn服务器用的是debian/linux,IP是192.168.0.101,cc.net安装在 192.168.0.102的winxp系统上。linux svn服务已配置与apache结合,可以通过htt访 问。在ccnet.config配置中将sourcecontrol段改为:
    <sourcecontrol type="svn">
      <trunkUrl>http://192.168.0.101/svn/demodulate/temper</trunkUrl>
      <workingDirectory>D:\code</workingDirectory>
      <executable>D:\Program Files\SlikSvn\bin\svn.exe</executable>
      <username>user</username>
      <password>password</password>
    </sourcecontrol>
    
    • 现在当svn代码库中有变化,cc.net自动会更新到workingDirectory目录,并开始构建工 程。比如我修改提交了库里的文件Awareness.cs,workingDirectory目录中 Awareness.cs更新了,cc.net重新构建了,见下图。

      latex-table

    1.5 待续

    后面我将把FxCop,NUnit,NUnit2report,发布,email通知都配置进cc.net。

    Date: 2013-05-05 22:27:20 CST

    Author: machine of awareness

    Org version 7.8.06 with Emacs version 23

    Validate XHTML 1.0
  • 相关阅读:
    Swift
    ios高质量博客
    Swift
    UML建模
    Swift
    Swift
    IIS建立.net framework4 应用程序池HTTP 错误 500.21
    zz entity framework vs linq to sql
    zz部署wcf iis
    zzIIS站点中部署WCF项目
  • 原文地址:https://www.cnblogs.com/machine/p/3061704.html
Copyright © 2020-2023  润新知