利用VSTS实现Daily Build
1、新建Team Build Type,“Project1Build” 2、建立批处理,"C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/TfsBuild.exe" start?Server1 ?"Project1" "Project1Build"。利用Windows自带的任务计划,执行批处理。Server1是服务器,Project1是项目,Project1Build是构建类型。 3、自己写一个邮件通知组件,通知团队成员编译结果,将通知命令放入到上面的批处理中。 需要用到下面的两个WebService http://Server1:8080/Build/v1.0/BuildController.asmx http://Server1:8080/Build/v1.0/BuildStore.asmx 下面的代码是获取BuildData信息。
????????????????BuildStore?bi?
=
?
new
?BuildStore();
????????????????bi.Credentials? = ?System.Net.CredentialCache.DefaultCredentials; ????????????????BuildData[]?builds? = ? null ; ???????????????? try ???????????????? ... { ????????????????????builds?=?bi.GetListOfBuilds(_teamProject,?_buildType); ????????????????} ???????????????? catch ?(Exception?e) ???????????????? ... { ????????????????????Log.LogError("Exception?when?calling?Webservice:?"?+?bi.Url,?e.ToString()); ????????????????????throw; ????????????????} ???????????????? if ?(builds? != ? null ) ???????????????? ... { ????????????????????foreach?(BuildData?bd?in?builds) ????????????????????...{ ????????????????????????if?(bd.BuildQuality?==?"Unexamined") ????????????????????????...{ ????????????????????????????ClientBuildData?data?=?new?ClientBuildData(); ????????????????????????????data.BuildUri?=?bd.BuildUri; ????????????????????????????data.DropLocation?=?bd.DropLocation; ????????????????????????????data.BuildNumber?=?bd.BuildNumber; ????????????????????????????data.BuildStatus?=?bd.BuildStatus; ????????????????????????????data.StartTime?=?bd.StartTime; ????????????????????????????this.buildDatas.Add(data); ????????????????????????} ????????????????????} ????????????????} ???????????????? return ? true ; 发送邮件通知的代码我就不贴了,到处都是。 4、做安装盘也可以写成批处理,无非是copy编译好的dll到安装目录。还有一点就是可能需要从VSS中获取Sql等。可以通过:tf get "//Server1/Sql" /force /recursive ,上MSDN查找一下VSS的tf命令吧。 做完这些事情之后,每天上班,就会看到半夜build的情况,如果有问题,马上就能发现。当需要做安装盘的时候,只是选择编译成功的build,执行一下批处理即可。如果写了UnitTest,作用更大。实现Daily build,目的就是让开发过程中的问题及时暴露、及时修复。另外一点就是提高做build的效率。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |