使用Microsoft.TeamFoundation.Build.Client我能够创建IBuildServer的一个实例,并从那里创建一个新的构建定义。
我正在努力解决的问题是如何设置要安排的构建触发器以及设置时间。
如果我检索一个设置为Scheduled Trigger的现有构建,我可以看到一个名为TriggerType的构建属性,它被设置为ScheduleForced。似乎没有其他信息可用,即时间,日期,构建,如果没有任何改变标志。
有关设置这些属性的想法吗?也许在构建控制器上?
答案 0 :(得分:2)
您可以使用以下属性来设置构建计划:
IBuildServer IBS = tpc.GetService<IBuildServer>();
IBuildDefinition ibdef = IBS.CreateBuildDefinition(projectname);
ibdef.Name = "ApiDef";
ibdef.TriggerType = DefinitionTriggerType.ScheduleForced;
ISchedule iss = ibdef.AddSchedule();
iss.DaysToBuild = ScheduleDays.Friday;
iss.StartTime = 10800;
iss.TimeZone = TimeZoneInfo.Utc;
ibdef.Save();
答案 1 :(得分:0)
无法找到任何TFS API来触发预定的构建。在使用API创建构建定义之后,您可以创建批处理文件和任务计划来安排构建,而不是API。
我们可以使用TFSBuild start命令为Team Foundation Build运行已配置的构建定义,命令如下:
TFSBuild start /collection:teamProjectCollectionUrl /builddefinition:definitionSpec
因此我们使用此命令创建批处理文件,例如batchbuild.bat,文件内容如下所示:
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\TFSBuild" start /collection:http://tfsserver:8080/tfs/DefaultCollection /builddefinition:teamproject\builddefinition
然后schedule a task按照项目要求定期运行构建命令。