diff --git a/src/Runner.Worker/GitHubContext.cs b/src/Runner.Worker/GitHubContext.cs index 541199b836d..7a707d1a9b0 100644 --- a/src/Runner.Worker/GitHubContext.cs +++ b/src/Runner.Worker/GitHubContext.cs @@ -10,6 +10,7 @@ public sealed class GitHubContext : DictionaryContextData, IEnvironmentContextDa { "action", "actor", + "api_url", // temp for GHES alpha release "base_ref", "event_name", "event_path", @@ -21,6 +22,7 @@ public sealed class GitHubContext : DictionaryContextData, IEnvironmentContextDa "run_id", "run_number", "sha", + "url", // temp for GHES alpha release "workflow", "workspace", }; diff --git a/src/Runner.Worker/JobExtension.cs b/src/Runner.Worker/JobExtension.cs index fe3a1ed24d8..927b111f721 100644 --- a/src/Runner.Worker/JobExtension.cs +++ b/src/Runner.Worker/JobExtension.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Globalization; using System.IO; using System.Linq; using System.Runtime.Serialization; @@ -127,6 +128,17 @@ public async Task> InitializeJob(IExecutionContext jobContext, Pipel context.SetRunnerContext("workspace", Path.Combine(_workDirectory, trackingConfig.PipelineDirectory)); context.SetGitHubContext("workspace", Path.Combine(_workDirectory, trackingConfig.WorkspaceDirectory)); + // Temporary hack for GHES alpha + var configurationStore = HostContext.GetService(); + var runnerSettings = configurationStore.GetSettings(); + if (!runnerSettings.IsHostedServer && !string.IsNullOrEmpty(runnerSettings.GitHubUrl)) + { + var url = new Uri(runnerSettings.GitHubUrl); + var portInfo = url.IsDefaultPort ? string.Empty : $":{url.Port.ToString(CultureInfo.InvariantCulture)}"; + context.SetGitHubContext("url", $"{url.Scheme}://{url.Host}{portInfo}"); + context.SetGitHubContext("api_url", $"{url.Scheme}://api.{url.Host}{portInfo}"); + } + // Evaluate the job-level environment variables context.Debug("Evaluating job-level environment variables"); var templateEvaluator = context.ToPipelineTemplateEvaluator();