我是 CCNet 的新手...
我想自定义 CCNet Web 仪表板以在“强制构建”按钮旁边添加一个复选框,以指示特定构建是否要发布。
请让我知道这种定制是否可行?如果是这样,请提供一些教程或文章链接以开始
最佳答案
我认为做你想做的事情会是一个巨大的痛苦,因为你必须隐藏一些 CC.net 项目(比如调试项目),如果选中复选框,仍然要构建它们。访问带有历史记录和日志的项目页面会很尴尬。如果您想即时编辑 ccnet 项目配置,请不要忘记您必须重新启动服务才能使其保持最新状态。最后,您对仪表板的修改可能没问题,但会导致 cctray 出现问题。
我会做的是有两个不同的项目,一个在 Debug模式下构建,一个在 Release模式下。这将更容易和直接。例如,您可以有一个调试项目,其构建是从源代码控制存储库更新触发的,另一个是手动或每晚构建的发布项目。
编辑
对于两个不同的项目,我会做的是一个带有两个动态参数(比如 Conf 和 OutPath)的公共(public)代码(用于发布和调试)的块。我还将编写第三个项目来负责执行 db 脚本,这个第三个项目将在每次成功构建版本时触发。像这样继续执行将允许您分别执行调试/发布构建,分别(在强制构建上)和每个发布构建上执行脚本,并最终验证脚本(在每次提交时)。它看起来像这样:
<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>
关于cruisecontrol.net - 如何自定义 CruiseControl.NET (CCNet) 仪表板?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3793103/