mirror of
https://github.com/actions/runner.git
synced 2025-12-15 06:26:46 +00:00
Composite Run Steps Refactoring (#591)
* Add basic framework for baby steps runner
* Basic logic for adding steps / invoking composite action steps
* Composite Steps Runner MVP
* Fix null object reference error
* intialize composiute
* Comment out code that is handled by stepsrunner
* Add composite clean up step
* Remove previous 'workarounds' from StepsRunner. Clean Up PR
* Remove todo
* Remove todo
* Fix using unitialized object yikes
* Remove time delay
* Format handler
* Move output handler into action handler
* Add try to evaluate display name
* Remove while loop yikes
* Abstract away the windows encoding check during step running
* Github context set to {ScopeName}.{ContextName} or {ContextName} if ScopeName is null
* Remove setting result to sucess since result defaults to sucess
* Fix windows error
* Fix windows
* revert:
* Windows fix
* Fix Windows Error in Abstraction
* Remove Composite Steps Runner => consolidate into Composite Steps Runner
* Remove unn. attribute in ExecutionContext
* Change protection levels, plus change function name to more clear meaning
* Remove location param
* location pt.2 fix
* Remove outputs step
* Remove temp directory
* new line
* Add arguitl not null
* better comment
* Change encoding name
* Check count > 0 for composite steps, import System.Threading
* Change function header encodingutil
* Add TODO
* Add await
* Handle Failed Step
* Move over SetAllCompositeOutputs to the handler
* Remove timeout-minutes setting in steps-level
* Use only ExecutionContext
* Move using to the top
* Remove redundant check
* Change function name
* Remove testing code
* Consolidate error code
* Consolidate code
* Change HandleOutput => ProcessCompositeActionOutputs
* Remove set the timeout comment
* Add Cancelling functionality + Remove unn. parameter
This commit is contained in:
@@ -70,8 +70,6 @@ namespace GitHub.Runner.Worker
|
||||
|
||||
bool EchoOnActionCommand { get; set; }
|
||||
|
||||
IExecutionContext FinalizeContext { get; set; }
|
||||
|
||||
// Initialize
|
||||
void InitializeJob(Pipelines.AgentJobRequestMessage message, CancellationToken token);
|
||||
void CancelToken();
|
||||
@@ -107,7 +105,7 @@ namespace GitHub.Runner.Worker
|
||||
// others
|
||||
void ForceTaskComplete();
|
||||
void RegisterPostJobStep(IStep step);
|
||||
IStep RegisterNestedStep(IActionRunner step, DictionaryContextData inputsData, int location, Dictionary<string, string> envData, bool cleanUp = false);
|
||||
IStep CreateCompositeStep(IActionRunner step, DictionaryContextData inputsData, Dictionary<string, string> envData);
|
||||
}
|
||||
|
||||
public sealed class ExecutionContext : RunnerService, IExecutionContext
|
||||
@@ -174,8 +172,6 @@ namespace GitHub.Runner.Worker
|
||||
|
||||
public bool EchoOnActionCommand { get; set; }
|
||||
|
||||
public IExecutionContext FinalizeContext { get; set; }
|
||||
|
||||
public TaskResult? Result
|
||||
{
|
||||
get
|
||||
@@ -276,12 +272,10 @@ namespace GitHub.Runner.Worker
|
||||
/// Helper function used in CompositeActionHandler::RunAsync to
|
||||
/// add a child node, aka a step, to the current job to the Root.JobSteps based on the location.
|
||||
/// </summary>
|
||||
public IStep RegisterNestedStep(
|
||||
public IStep CreateCompositeStep(
|
||||
IActionRunner step,
|
||||
DictionaryContextData inputsData,
|
||||
int location,
|
||||
Dictionary<string, string> envData,
|
||||
bool cleanUp = false)
|
||||
Dictionary<string, string> envData)
|
||||
{
|
||||
// If the context name is empty and the scope name is empty, we would generate a unique scope name for this child in the following format:
|
||||
// "__<GUID>"
|
||||
@@ -297,12 +291,6 @@ namespace GitHub.Runner.Worker
|
||||
|
||||
step.ExecutionContext.ExpressionValues["inputs"] = inputsData;
|
||||
|
||||
// Set Parent Attribute for Clean Up Step
|
||||
if (cleanUp)
|
||||
{
|
||||
step.ExecutionContext.FinalizeContext = this;
|
||||
}
|
||||
|
||||
// Add the composite action environment variables to each step.
|
||||
#if OS_WINDOWS
|
||||
var envContext = new DictionaryContextData();
|
||||
@@ -315,8 +303,6 @@ namespace GitHub.Runner.Worker
|
||||
}
|
||||
step.ExecutionContext.ExpressionValues["env"] = envContext;
|
||||
|
||||
Root.JobSteps.Insert(location, step);
|
||||
|
||||
return step;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user