CCNet 的 Build 流程

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 //对应配置 /ccnet/project/artifactDirectory
CCNetBuildCondition=ForceBuild // Build 条件
CCNetBuildDate=2009-03-10 // Build 日期
CCNetBuildTime=09:36:11 // Build 时间
CCNetFailureUsers="WORKGROUP\zealic,WORKGROUP\jim" //生成失败的相关用户(从源代码变更中获取)
CCNetIntegrationStatus=Unknown //本次集成状态
CCNetLabel=2009.03.10.001 // Labeller 生成的 label
CCNetLastIntegrationStatus=Failure //上次集成状态
CCNetListenerFile=d:\ccnet\Artifact\MyProject\MyProject_ListenFile.xml
CCNetNumericLabel=1 //CCNetLabel 变量的数字表现形式
CCNetProject=MyProject //对应配置 /ccnet/project/name
CCNetProjectUrl=http://localhost/dashboard/ //对应配置 /ccnet/project/webURL
CCNetRequestSource=zealic //对应 sourcecontrol 配置中的 username
CCNetWorkingDirectory=d:\ccnet\MyProject\  //对应配置 /ccnet/project/workingDirectory

3/10/2009 Zealic

你可能感兴趣的:(CCNet 的 Build 流程)