Пример #1
0
 List<ExecutableTask> GenerateTasks(SourceDrop sourceDrop)
 {
     var execTasks = new List<ExecutableTask>();
     bool shouldStop;
     foreach (var task in tasksSource.Detect(sourceDrop.SourceDropLocation, out shouldStop))
     {
         execTasks.AddRange(task.GimeTasks(execTaskGenerator));
     }
     return execTasks;
 }
Пример #2
0
        void RunTasks(SourceDrop sourceDrop, List<ExecutableTask> execTasks)
        {
            var execTaskStatus = ExecTaskResult.Status.Success;
            var status = GeneratePipelineStatus(execTasks);
            OnBuildStarted(status);

            for (var i = 0; i < execTasks.Count; i++)
            {
                var execTask = execTasks[i];
                var terminalId = status.Tasks[i].TerminalId;
                OnBuildUpdated(i, terminalId, TaskInfo.TaskStatus.Started);
                var sequneceIndex = 0;
                Action<string> execTaskOnOnTerminalOutputUpdate =
                    s => OnTerminalUpdate(new TerminalUpdateInfo(sequneceIndex++, s, i, terminalId));
                execTask.OnTerminalOutputUpdate += execTaskOnOnTerminalOutputUpdate;
                try
                {
                    execTaskStatus = execTask.Perform(sourceDrop).ExecStatus;
                }
                catch (Exception e)
                {
                    execTaskStatus = ExecTaskResult.Status.Error;
                    execTaskOnOnTerminalOutputUpdate("Runz>> Exception running the task:" + e);
                }
                execTask.OnTerminalOutputUpdate -= execTaskOnOnTerminalOutputUpdate;
                var taskStatus = execTaskStatus == ExecTaskResult.Status.Error
                                     ? TaskInfo.TaskStatus.FinishedError
                                     : TaskInfo.TaskStatus.FinishedSuccess;
                OnBuildUpdated(i, terminalId, taskStatus);
                if (execTaskStatus != ExecTaskResult.Status.Success) break;
            }

            OnBuildEnded(execTaskStatus == ExecTaskResult.Status.Error
                             ? BuildTotalEndStatus.Error
                             : BuildTotalEndStatus.Success);
        }
Пример #3
0
 public virtual void Process(SourceDrop sourceDrop)
 {
     var execTasks = GenerateTasks(sourceDrop);
     RunTasks(sourceDrop, execTasks);
 }