diff --git a/DeepLearningProtocol/Workflow.cs b/DeepLearningProtocol/Workflow.cs index 5ac05f5..c3f41ef 100644 --- a/DeepLearningProtocol/Workflow.cs +++ b/DeepLearningProtocol/Workflow.cs @@ -119,6 +119,30 @@ public void StartStage(int stageNumber, string name, string description) LogStageEvent(stage, $"Stage {stageNumber}: {name} started"); } + /// + /// Start a new workflow stage (async version) + /// + public async Task StartStageAsync(int stageNumber, string name, string description) + { + await Task.Run(() => StartStage(stageNumber, name, description)); + } + + /// + /// Complete current workflow stage (async version) + /// + public async Task CompleteStageAsync(string stageName, bool success, string summary = "") + { + await Task.Run(() => CompleteStage(stageName, success, summary)); + } + + /// + /// Add log entry to current stage (async version) + /// + public async Task AddLogAsync(string stageName, string message) + { + await Task.Run(() => AddLog(stageName, message)); + } + /// /// Complete current workflow stage /// @@ -288,6 +312,14 @@ public void SaveWorkflowToFile(string workflowName) } } + /// + /// Save workflow to JSON file with error handling (async version) + /// + public async Task SaveWorkflowToFileAsync(string workflowName) + { + await Task.Run(() => SaveWorkflowToFile(workflowName)); + } + /// /// Get pipeline configuration for CI/CD /// @@ -447,6 +479,30 @@ public void ExecuteDevelopmentWorkflow() _logger(_workflowManager.GetWorkflowSummary()); } + /// + /// Execute development workflow (async version) + /// + public async Task ExecuteDevelopmentWorkflowAsync() + { + _logger("Starting Development Workflow (Async)..."); + _workflowManager.SetState(WorkflowManager.WorkflowState.InProgress); + + await _workflowManager.StartStageAsync(1, "Feature Development", "Code implementation and feature development"); + await Task.Delay(1000); + await _workflowManager.CompleteStageAsync("Feature Development", true, "Feature implemented successfully"); + + await _workflowManager.StartStageAsync(2, "Unit Testing", "Local unit test execution"); + await Task.Delay(1000); + await _workflowManager.CompleteStageAsync("Unit Testing", true, "All tests passed (8/8)"); + + await _workflowManager.StartStageAsync(3, "Code Review", "Peer code review"); + await Task.Delay(1000); + await _workflowManager.CompleteStageAsync("Code Review", true, "Approved for merge"); + + _workflowManager.SetState(WorkflowManager.WorkflowState.Completed); + _logger(_workflowManager.GetWorkflowSummary()); + } + /// /// Execute CI/CD pipeline workflow /// @@ -474,5 +530,33 @@ public void ExecuteCIPipelineWorkflow() _workflowManager.SetState(WorkflowManager.WorkflowState.Completed); _logger(_workflowManager.GetWorkflowSummary()); } + + /// + /// Execute CI/CD pipeline workflow (async version) + /// + public async Task ExecuteCIPipelineWorkflowAsync() + { + _logger("Starting CI/CD Pipeline Workflow (Async)..."); + _workflowManager.SetState(WorkflowManager.WorkflowState.InProgress); + + await _workflowManager.StartStageAsync(1, "Build Stage", "Debug/Release build compilation"); + await Task.Delay(1500); + await _workflowManager.CompleteStageAsync("Build Stage", true, "Build successful - 0 errors"); + + await _workflowManager.StartStageAsync(2, "Testing Stage", "Unit test execution with coverage"); + await Task.Delay(2000); + await _workflowManager.CompleteStageAsync("Testing Stage", true, "8/8 tests passed"); + + await _workflowManager.StartStageAsync(3, "Code Quality Stage", "Code style and quality checks"); + await Task.Delay(1000); + await _workflowManager.CompleteStageAsync("Code Quality Stage", true, "Quality standards met"); + + await _workflowManager.StartStageAsync(4, "Artifact Publishing", "Build artifact storage"); + await Task.Delay(500); + await _workflowManager.CompleteStageAsync("Artifact Publishing", true, "Artifacts published (30d retention)"); + + _workflowManager.SetState(WorkflowManager.WorkflowState.Completed); + _logger(_workflowManager.GetWorkflowSummary()); + } } }