zoukankan      html  css  js  c++  java
  • [CruiseControl]配置文件config.xml

    一 配置文件config.xml

    <cruisecontrol>
       
    <property/>
       
    <dashboard/>
       
    <include.projects/>
       
    <system>
          
    <configuration>
             
    <threads/>
          
    </configuration>
       
    </system>
       
    <plugin/>
       
    <project>
          
    <property/>
          
    <plugin/>
          
    <cvslabelincrementer>
          
    <emptylabelincrementer>
          
    <formattedlabelincrementer>
          
    <labelincrementer/>
          
    <p4changelistlabelincrementer>
          
    <propertyfilelabelincrementer>
          
    <svnlabelincrementer>
          
    <listeners>
             
    <cmsynergysessionmonitor/>
             
    <currentbuildstatusftplistener/>
             
    <currentbuildstatuslistener/>
             
    <currentbuildstatuspagelistener/>
             
    <lockfilelistener/>
          
    </listeners>
          
    <bootstrappers>
             
    <accurevbootstrapper/>
             
    <alienbrainbootstrapper/>
             
    <antbootstrapper/>
             
    <clearcasebootstrapper/>
             
    <clearcaseviewstrapper/>
             
    <cmsynergybootstrapper/>
             
    <cmsynergybaselinebootstrapper/>
             
    <cvsbootstrapper/>
             
    <darcsbootstrapper/>
             
    <execbootstrapper/>
             
    <gitbootstrapper/>
             
    <harvestbootstrapper/>
             
    <lockfilebootstrapper/>
             
    <mercurialbootstrapper/>
             
    <p4bootstrapper/>
             
    <plasticscmbootstrapper/>
             
    <snapshotcmbootstrapper/>
             
    <starteambootstrapper/>
             
    <surroundbootstrapper/>
             
    <svnbootstrapper/>
             
    <tfsbootstrapper/>
             
    <vssbootstrapper/>
          
    </bootstrappers>
          
    <modificationset>
             
    <accurev>
             
    <alienbrain/>
             
    <alwaysbuild/>
             
    <buildstatus/>
             
    <clearcase/>
             
    <cmsynergy/>
             
    <compound>
                
    <targets/>
                
    <triggers/>
             
    </compound>
             
    <cvs/>
             
    <darcs/>
             
    <filesystem/>
             
    <forceonly/>
             
    <git/>
             
    <harvest/>
             
    <httpfile/>
             
    <mavensnapshotdependency/>
             
    <maven2snapshotdependency/>
             
    <mercurial/>
             
    <mks/>
             
    <p4/>
             
    <plasticscm/>
             
    <pvcs/>
             
    <snapshotcm/>
             
    <starteam/>
             
    <store/>
             
    <surround/>
             
    <svn/>
             
    <tfs/>
             
    <timebuild>
             
    <ucm>
             
    <veto/>
             
    <vss/>
             
    <vssjournal/>
          
    </modificationset>
          
    <schedule>
             
    <ant/>
             
    <maven/>
             
    <maven2/>
             
    <pause/>
             
    <nant/>
             
    <phing/>
             
    <rake/>
             
    <exec/>
             
    <composite/>
             
    <xcode/>
          
    </schedule>
          
    <log>
             
    <merge/>
         
    <gzip/>
         
    <delete/>
         
    <deleteartifacts/>
          
    </log>
          
    <publishers>
             
    <antpublisher/>
             
    <artifactspublisher/>
             
    <clearcasebaselinepublisher/>
             
    <cmsynergybaselinepublisher/>
             
    <cmsynergytaskpublisher/>
             
    <compoundpublisher/>
             
    <email/>
             
    <execute/>
             
    <ftppublisher/>
             
    <htmlemail/>
             
    <http>
             
    <jabber/>
             
    <onfailure/>
             
    <onsuccess/>
             
    <origo/>
             
    <rss/>
             
    <sametimeannouncement/>
             
    <scp/>
             
    <sfeedocman/>
             
    <sfeefrs/>
             
    <sfeetracker/>
             
    <socket/>
             
    <twitter>
             
    <weblog>
             
    <x10/>
             
    <xsltlogpublisher/>
             
    <yahoopublisher/>
          
    </publishers>
       
    </project>
    </cruisecontrol>

    二 config.xml的元素<CruiseControl/>和子元素

    1)<CruiseControl/>

    <CruiseControl/>是配置文件的根节点,可以看做其他的元素容器。

    它可以包含子元素:<system>,<project>,<plugin>,<property>,<include.projects>,<dashboard>。

    2) <threads> (<system>/<configuration>/<threads>)

    <threads> 用来指定CruiseControl可同时build projects的最大数目。默认为1。如果某一时刻需要运行的projects大于threads的count属性指定的值,则多余count的projects将处于等待队列。

    它包含属性count。count表示thread的最大数目。

    3) <property>

    <property> 用来在config.xml中设置一个属性。

    它可以包含属性name,value,enviroment,file,toupper。name/value用来表示一个属性;enviroment用来指定可以使用的系统环境变量的前缀,例如当environment为myenv时,表示可以使用系统中的所有的以myenv开始的环境变量,例如myenv.path;file用来加载专门包含<property/>的文件,将所有的property导入到当前config.xml;toupper用来将属性的名字转化为大写。

    如下示例:

    1.Set a couple of global properties using name/value pairs: 
    <cruisecontrol>
        
    <property name="cruisedir" value="/home/cruise"/>
        
    <property name="logdir"    value="${cruisedir}/logs"/>
        ...
    <cruisecontrol>

    2.Set a collection of global properties from the properties file "config.properties":
    <cruisecontrol>
        
    <property file="config.properties"/>
        ...
    <cruisecontrol>

    3.Load the system's environment into a collection of global properties. Uppercase all environment variable names: 
    <cruisecontrol>
        
    <property environment="env" toupper="true"/>
        
    <property name="logdir"     value="${env.CCDIR}/logs"/>
        ...
    <cruisecontrol>

    4.Define a global property called "buildmanager". Override it's value only within the scope of the project called "project2". 
    <cruisecontrol>
        
    <property name="buildmanager" value="buildmgr@here.com"/>

        
    <project name="project1">
            
    <!-- ${buildmanager} resolves to "buildmgr@here.com" -->
        
    </project>

        
    <project name="project2">
            
    <property name="buildmanager" value="someoneelse@here.com"/>
            
    <!-- ${buildmanager} resolves to "someoneelse@here.com" -->
        
    </project>
    <cruisecontrol>

    5.As demonstrated here, properties and plugin pre-configuration can be an extremely powerful combination. 
    <cruisecontrol>
        
    <!-- Load environment variables -->
        
    <property environment="env" toupper="true"/>

        
    <!-- Commonly used directories -->
        
    <property name="reportdir"  value="${env.CCDIR}/report"/>
        
    <property name="projectdir" value="${env.CCDIR}/checkout/${project.name}"/>
        
    <property name="testdir" value="${projectdir}/build/junit-reports"/>
        
    <property name="logdir" value="${env.CCDIR}/logs/${project.name}"/>

        
    <!-- Defaults for email -->
        
    <property name="buildmaster.email"  value="buildmaster@example.com"/>
        
    <property name="buildmaster.name"  value="Buildmaster"/>

        
    <!-- Preconfigure our plugins -->
        
    <plugin name="log"
                dir
    ="${logdir}"/>

        
    <plugin name="currentbuildstatuslistener"
                file
    ="${logdir}/buildstatus.html"/>

        
    <plugin name="cvs"
                localworkingcopy
    ="${projectdir}"/>

        
    <plugin name="ant"
                antscript
    ="${env.ANT_HOME}/bin/ant"
                antWorkingDir
    ="${projectdir}"
                target
    ="cruise"/>

        
    <plugin name="htmlemail"
                buildresultsurl
    ="http://servername/cruisecontrol/buildresults/${project.name}"
                mailhost
    ="smtp.example.com"
                returnaddress
    ="${buildmaster.email}"
                returnname
    ="${buildmaster.name}"
                subjectprefix
    ="[BUILD ${project.name}]"
                xsldir
    ="${reportdir}/jsp/webcontent/xsl"
                css
    ="${reportdir}/jsp/webcontent/css/cruisecontrol.css"/>

        
    <project name="project1"/>
            
    <listeners>
                
    <currentbuildstatuslistener/>
            
    </listeners>
            
    <log>
                
    <merge dir="${testdir}">
            
    </log>
            
    <modificationset>
                
    <cvs/>
            
    </modificationset>
            
    <schedule>
                
    <ant/>
            
    </schedule>
            
    <publishers>
                
    <htmlemail>
                    
    <always  address="${buildmaster.email}">
                    
    <failure address="proj1dev@example.com">
                    
    <ignore address="buildmaster">
                
    </htmlemail>
            
    </publishers>
        
    </project>

        
    <project name="project2"/>
            
    <listeners>
                
    <currentbuildstatuslistener/>
            
    </listeners>
            
    <log>
                
    <merge dir="${testdir}">
            
    </log>
            
    <modificationset>
                
    <cvs/>
            
    </modificationset>
            
    <schedule>
                
    <ant/>
            
    </schedule>
            
    <publishers>
                
    <htmlemail>
                    
    <always  address="${buildmaster.email}">
                    
    <failure address="proj2dev@example.com">
                
    </htmlemail>
            
    </publishers>
        
    </project>
    </cruisecontrol>

    4)<include.projects>

    <include.projects>用来将多个config文件合并为config文件。

    它包含属性file,表示要include的config文件的相对路径。

    5)<dashboard>

    <dashboard>用来为build loop指定dashboard。

    它包含属性url,postinterval。url为dashboard的url,postinterval表示build loop传输build信息到dashboard的间隔。

    6)<project>

    <project>是基本的工作单元。包含检查source修改,build,发布build结果。

    它包含属性name,buildafterfailed,forcebuildnewproject,requiremodification,forceonly。buildafterfailed为ture表示即使build失败了,cruisecontrol继续保持build;forcebuildnewproject为ture表示如果没有发现project的序列文件(project.ser)就强制project开始build;requiremodification为ture表示当source code有修改时build,但是如果需要定时build或手动测试时,requiremodification需要为false。

    它包含子元素<listeners>,<bootstrappers>,<modificationset>,<schedule>,<log>,<publishers>,<plugin>。

    完!


    作者:iTech
    微信公众号: cicdops
    出处:http://itech.cnblogs.com/
    github:https://github.com/cicdops/cicdops

  • 相关阅读:
    可视化工具之 IGV 使用方法
    SAM格式 及 比对工具之 samtools 使用方法
    比对工具之 BWA 使用方法
    项目一:使用二代测序数据进行基因组组装(局部组装)
    Linux 打包和压缩 方法详解
    Oracle 11G R2 RAC中的scan ip 的用途和基本原理【转】
    ORACLE表空间查询和管理【转】
    MySQL分布式集群之MyCAT(三)rule的分析【转】
    MySQL分布式集群之MyCAT(二)【转】
    linux快速复制大量小文件方法 nc+tar【转】
  • 原文地址:https://www.cnblogs.com/itech/p/1780202.html
Copyright © 2011-2022 走看看