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);
        }
예제 #3
0
 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);