【问题标题】:How to customize CruiseControl.NET (CCNet) Dashboard?如何自定义 CruiseControl.NET (CCNet) 仪表板?
【发布时间】:2011-04-17 03:00:33
【问题描述】:

我是 CCNet 的新手...

我想自定义 CCNet 网络仪表板,在“强制构建”按钮旁边添加一个复选框,以指示特定构建是否用于发布。

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

【问题讨论】:

    标签: cruisecontrol.net customization dashboard


    【解决方案1】:

    我认为做你想做的事情会很痛苦,因为你必须隐藏一些 CC.net 项目(比如调试项目),如果选中该复选框,仍然要构建它们。访问带有历史和日志的项目页面会很尴尬。如果您考虑即时编辑 ccnet 项目配置,请不要忘记您必须重新启动服务以使其保持最新状态。最后,您的修改对于仪表板来说可能没问题,但它会导致 cctray 出现问题。

    我会做的是有两个不同的项目,一个在调试模式下构建,一个在发布模式下。这将更加容易和直接。例如,您可以有一个调试项目,其构建是从源代码控制存储库更新触发的,以及一个手动或夜间构建的发布版本。

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

    <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>
    

    【讨论】:

    • 感谢您的回复。实际上,我想触发一个构建任务来编写该特定项目的数据库脚本。请让我知道这是否可能?或者在这种情况下你会怎么做?
    • 您的意思是,您有一个用于 Debug 和 Release 项目的数据库,并且您需要在构建时运行一个 sql 脚本以匹配正确的配置(Debug/Release)?
    • 我想编写并提交开发数据库脚本,前提是它要进入发布模式;而不是在每个构建中编写脚本...
    • 编辑了我会做什么(如果我理解你的话)。
    猜你喜欢
    • 1970-01-01
    • 2011-07-29
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 2015-03-29
    • 2020-07-07
    • 1970-01-01
    相关资源
    最近更新 更多