From 3f1dd45172b30fd97e48dd82bd6ea4efe17eb3a9 Mon Sep 17 00:00:00 2001 From: Tingluo Huang Date: Tue, 6 Jan 2026 14:06:47 -0500 Subject: [PATCH] Set ACTIONS_ORCHESTRATION_ID as env to actions. (#4178) Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: TingluoHuang <1750815+TingluoHuang@users.noreply.github.com> --- src/Runner.Common/Constants.cs | 1 + src/Runner.Worker/Handlers/ContainerActionHandler.cs | 8 ++++++++ src/Runner.Worker/Handlers/NodeScriptActionHandler.cs | 8 ++++++++ src/Runner.Worker/Handlers/ScriptHandler.cs | 8 ++++++++ 4 files changed, 25 insertions(+) diff --git a/src/Runner.Common/Constants.cs b/src/Runner.Common/Constants.cs index ae2b08630..045e90663 100644 --- a/src/Runner.Common/Constants.cs +++ b/src/Runner.Common/Constants.cs @@ -172,6 +172,7 @@ namespace GitHub.Runner.Common public static readonly string SnapshotPreflightHostedRunnerCheck = "actions_snapshot_preflight_hosted_runner_check"; public static readonly string SnapshotPreflightImageGenPoolCheck = "actions_snapshot_preflight_image_gen_pool_check"; public static readonly string CompareWorkflowParser = "actions_runner_compare_workflow_parser"; + public static readonly string SetOrchestrationIdEnvForActions = "actions_set_orchestration_id_env_for_actions"; } // Node version migration related constants diff --git a/src/Runner.Worker/Handlers/ContainerActionHandler.cs b/src/Runner.Worker/Handlers/ContainerActionHandler.cs index 399fac780..1f67c9dd3 100644 --- a/src/Runner.Worker/Handlers/ContainerActionHandler.cs +++ b/src/Runner.Worker/Handlers/ContainerActionHandler.cs @@ -239,6 +239,14 @@ namespace GitHub.Runner.Worker.Handlers Environment["ACTIONS_RESULTS_URL"] = resultsUrl; } + if (ExecutionContext.Global.Variables.GetBoolean(Constants.Runner.Features.SetOrchestrationIdEnvForActions) ?? false) + { + if (ExecutionContext.Global.Variables.TryGetValue(Constants.Variables.System.OrchestrationId, out var orchestrationId) && !string.IsNullOrEmpty(orchestrationId)) + { + Environment["ACTIONS_ORCHESTRATION_ID"] = orchestrationId; + } + } + foreach (var variable in this.Environment) { container.ContainerEnvironmentVariables[variable.Key] = container.TranslateToContainerPath(variable.Value); diff --git a/src/Runner.Worker/Handlers/NodeScriptActionHandler.cs b/src/Runner.Worker/Handlers/NodeScriptActionHandler.cs index a399f13d1..668ca95f6 100644 --- a/src/Runner.Worker/Handlers/NodeScriptActionHandler.cs +++ b/src/Runner.Worker/Handlers/NodeScriptActionHandler.cs @@ -77,6 +77,14 @@ namespace GitHub.Runner.Worker.Handlers Environment["ACTIONS_CACHE_SERVICE_V2"] = bool.TrueString; } + if (ExecutionContext.Global.Variables.GetBoolean(Constants.Runner.Features.SetOrchestrationIdEnvForActions) ?? false) + { + if (ExecutionContext.Global.Variables.TryGetValue(Constants.Variables.System.OrchestrationId, out var orchestrationId) && !string.IsNullOrEmpty(orchestrationId)) + { + Environment["ACTIONS_ORCHESTRATION_ID"] = orchestrationId; + } + } + // Resolve the target script. string target = null; if (stage == ActionRunStage.Main) diff --git a/src/Runner.Worker/Handlers/ScriptHandler.cs b/src/Runner.Worker/Handlers/ScriptHandler.cs index e6fa90a0a..b898f051d 100644 --- a/src/Runner.Worker/Handlers/ScriptHandler.cs +++ b/src/Runner.Worker/Handlers/ScriptHandler.cs @@ -318,6 +318,14 @@ namespace GitHub.Runner.Worker.Handlers Environment["ACTIONS_ID_TOKEN_REQUEST_TOKEN"] = systemConnection.Authorization.Parameters[EndpointAuthorizationParameters.AccessToken]; } + if (ExecutionContext.Global.Variables.GetBoolean(Constants.Runner.Features.SetOrchestrationIdEnvForActions) ?? false) + { + if (ExecutionContext.Global.Variables.TryGetValue(Constants.Variables.System.OrchestrationId, out var orchestrationId) && !string.IsNullOrEmpty(orchestrationId)) + { + Environment["ACTIONS_ORCHESTRATION_ID"] = orchestrationId; + } + } + ExecutionContext.Debug($"{fileName} {arguments}"); Inputs.TryGetValue("standardInInput", out var standardInInput);