CruiseControl.NET CCNet 的 Build 流程

Zealic · 发布于 2009年3月10日 · 217 次阅读
96

StartNewIntegration GetLastState(获取上一次的 Build 状态,对应 ccnet 目录下的 < ProjectName>.state 文件) GetModifications MarkStartTime Build { Prebuild(对应 prebuild 配置节,任何一个 task 失败都会导致不再后续的 task) GetSource RunTasks(对应 tasks 配置节,任何一个 task 失败都会导致不再后续的 task) } MarkEndTime PostBuild { FinishIntegration(持久化 Build 状态,下次 GetLastState 获取该状态) PublishResults(即使 Build 失败依旧执行该流程,对应 Publisher 节。任何一个 publisher 运行失败都会继续运行后续的 publisher) }

附: CCNet 传递给 MSBuild 或 NAnt 的变量 CCNetArtifactDirectory=d:\ccnet\Artifact\MyProject [b]//对应配置 /ccnet/project/artifactDirectory[/b] CCNetBuildCondition=ForceBuild [b]// Build 条件[/b] CCNetBuildDate=2009-03-10 [b]// Build 日期[/b] CCNetBuildTime=09:36:11 [b]// Build 时间[/b] CCNetFailureUsers="WORKGROUP\zealic,WORKGROUP\jim" [b]//生成失败的相关用户(从源代码变更中获取,如果上次 build 状态为 Failure,则包含上次 build 的 FailureUsers)[/b] CCNetIntegrationStatus=Unknown [b]//本次集成状态[/b] CCNetLabel=2009.03.10.001 [b]// Labeller 生成的 label[/b] CCNetLastIntegrationStatus=Failure [b]//上次集成状态[/b] CCNetListenerFile=d:\ccnet\Artifact\MyProject\MyProject_ListenFile.xml CCNetNumericLabel=1 [b]//CCNetLabel 变量的数字表现形式[/b] CCNetProject=MyProject[b] //对应配置 /ccnet/project/name[/b] CCNetProjectUrl=http://localhost/dashboard/ [b]//对应配置 /ccnet/project/webURL[/b] CCNetRequestSource=zealic [b]//对应 sourcecontrol 配置中的 username[/b] CCNetWorkingDirectory=d:\ccnet\MyProject\ [b]//对应配置 /ccnet/project/workingDirectory [/b]

3/10/2009 Zealic

[[i] 本帖最后由 Zealic 于 2009-3-10 17:19 编辑 ]

共收到 2 条回复
96
scmroad · #1 · 2009年3月10日

:)

支持深入研究ccnet,现在持续集成可以说是CM比较看重的一项任务了.

自动build很强大,而ccnet不得不说,这是.NET平台下,一款优秀的软件

96
Zealic · #2 · 2009年3月10日

说起强大 我更看好 TeamCity Hudson 也是一个不错选择,[color=Red]但是过于 Open,让人难以接受。 (我收回这句话的红色部分)

[[i] 本帖最后由 Zealic 于 2009-3-10 15:27 编辑 ]

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册