public TaskGroup CreateTaskGroup() { string projectName = ClientSampleHelpers.FindAnyProject(this.Context).Name; // Get a task agent client instance VssConnection connection = Context.Connection; TaskAgentHttpClient taskClient = connection.GetClient <TaskAgentHttpClient>(); Dictionary <string, string> inputs = new Dictionary <string, string>() { { "scriptType", "inlineScript" }, { "inlineScript", "Write-Host \"Hello World\"" }, }; // Task inside the task group TaskGroupStep taskGroupStep = new TaskGroupStep() { Enabled = true, DisplayName = "PowerShell Script", Inputs = inputs, Task = new TaskDefinitionReference { Id = new Guid("e213ff0f-5d5c-4791-802d-52ea3e7be1f1"), VersionSpec = "1.*", DefinitionType = "task" }, }; // Task group object TaskGroupCreateParameter taskGroup = new TaskGroupCreateParameter() { Category = "Deploy", Name = "PowerShell TG1", InstanceNameFormat = "Task group: TG", Version = new TaskVersion { IsTest = false, Major = 1, Minor = 0, Patch = 0 } }; taskGroup.Tasks.Add(taskGroupStep); // Create task group TaskGroup addedTg = taskClient.AddTaskGroupAsync(project: projectName, taskGroup: taskGroup).Result; this.addedTaskGroupId = addedTg.Id; // Show the added task group Context.Log("{0} {1}", addedTg.Id.ToString().PadLeft(6), addedTg.Name); return(addedTg); }
public TaskGroup UpdateTaskGroup() { string projectName = ClientSampleHelpers.FindAnyProject(this.Context).Name; // Get a task agent client instance VssConnection connection = Context.Connection; TaskAgentHttpClient taskClient = connection.GetClient <TaskAgentHttpClient>(); // Get task group to update List <TaskGroup> taskGroups = taskClient.GetTaskGroupsAsync(project: projectName, taskGroupId: this.addedTaskGroupId).Result; Dictionary <string, string> inputs = new Dictionary <string, string>() { { "scriptType", "inlineScript" }, { "inlineScript", "Write-Host \"New task\"" }, }; // New Task to be added in the task group TaskGroupStep newTask = new TaskGroupStep() { Enabled = true, DisplayName = "PowerShell Script", Inputs = inputs, Task = new TaskDefinitionReference { Id = new Guid("e213ff0f-5d5c-4791-802d-52ea3e7be1f1"), VersionSpec = "1.*", DefinitionType = "task" }, }; // Update comment in the task group object. TaskGroup taskGroup = taskGroups.FirstOrDefault(); taskGroup.Comment = "Updated the task group"; taskGroup.Tasks.Add(newTask); TaskGroupUpdateParameter taskGroupUpdateParams = GetTaskGroupUpdateParameter(taskGroup); TaskGroup updatedTaskGroup = taskClient.UpdateTaskGroupAsync(project: projectName, taskGroupId: taskGroup.Id, taskGroup: taskGroupUpdateParams).Result; Context.Log("{0} {1}", updatedTaskGroup.Id.ToString().PadLeft(6), updatedTaskGroup.Comment); return(updatedTaskGroup); }
List <Step> GenSteps(TaskGroupStep task, Dictionary <string, string> parameters) => GenSteps(task.Task.Id, task.DisplayName, task.Task.VersionSpec, task.Inputs, task.Environment, task.Condition, task.ContinueOnError, task.TimeoutInMinutes, parameters);