加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

利用VSTS实现Daily Build

发布时间:2020-12-17 02:55:36 所属栏目:安全 来源:网络整理
导读:1、新建Team Build Type,“Project1Build” 2、建立批处理,"C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/TfsBuild.exe" start? Server1 ?" Project1 " " Project1Build "。利用Windows自带的任务计划,执行批处理。Server1是服务器,Project1

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的效率。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读