代码之家  ›  专栏  ›  技术社区  ›  Sandeep Kumar M

如何定制巡航控制.NET(CCNet)仪表板?

  •  4
  • Sandeep Kumar M  · 技术社区  · 16 年前

    我是CCNet的新手。。。

    我想定制ccnetweb仪表板,在“forcebuild”按钮旁边添加一个复选框,以指示特定的构建是否要发布。

    请告诉我这种定制是否可行?如果是这样,请提供一些教程或文章链接开始

    1 回复  |  直到 16 年前
        1
  •  6
  •   Benjamin Baumann    16 年前

    编辑
    对于两个不同的项目,我要做的是一个具有公共代码(用于Release和Debug)和两个动态参数(比如Conf和OutPath)的bloc。我还将编写第三个项目,负责执行数据库脚本,这第三个项目将触发每一个成功的版本1建设。这样做将允许您分别执行调试/发布构建,分别执行脚本(在强制构建上)和每个发布构建,最后验证脚本(在每个提交上)。它看起来是这样的:

    <cb:define name="MyProject-Block">
        <project name="MyProject - $(Conf)" queue="General" queuePriority="100">
            <workingDirectory>D:\MyProject</workingDirectory>
            <triggers>
                <intervalTrigger seconds="300"/>
            </triggers>
            <cb:state-block/>
            <cb:svn-block svnpath="MyProject"/>
            <tasks>
                <msbuild>
                    <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
                    <workingDirectory>D:\MyProject</workingDirectory>
                    <projectFile>MyProject.sln</projectFile>
                    <buildArgs>/p:Configuration=$(Conf);OutputPath="$(OutPath)"</buildArgs>
                    <targets>Clean;Build</targets>
                    <timeout>600</timeout>
                    <logger>F:\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
                </msbuild>
            </tasks>
            <publishers>
                <xmllogger/>
                <statistics />
                <modificationHistory onlyLogWhenChangesFound="true" />
                <cb:email-block/>
            </publishers>
        </project>
    </cb:define>
    
    <cb:MyProject-Block Conf="Debug" OuputPath="..\Compil\Debug" />
    <cb:MyProject-Block Conf="Release" OuputPath="..\Compil\Release" />
    
    <project name="MyProject. DbScript" queue="General" queuePriority="110">
        <workingDirectory>D:\MyProject\DB</workingDirectory>
        <triggers>
            <projectTrigger project=" MyProject - Release">
                <triggerStatus>Success</triggerStatus>
                <innerTrigger name="Eurosport.Business" type="intervalTrigger" seconds="60" buildCondition="ForceBuild" />
            </projectTrigger>
            <intervalTrigger seconds="300"/>
        </triggers>
        <cb:state-block/>
        <cb:svn-block svnpath="MyProject/DB"/>
        <tasks>
            <!-- Executing the script here -->
        </tasks>
        <publishers>
            <xmllogger/>
            <statistics />
            <modificationHistory onlyLogWhenChangesFound="true" />
            <cb:email-block/>
        </publishers>
    </project>