mirror of
https://github.com/actions/runner.git
synced 2025-12-11 21:06:55 +00:00
Allow admins to fail jobs without container (#1895)
* Allow admins to fail jobs without container * Make method static * Update src/Runner.Common/Constants.cs Co-authored-by: Thomas Boop <52323235+thboop@users.noreply.github.com> * Update src/Runner.Worker/JobExtension.cs Co-authored-by: Thomas Boop <52323235+thboop@users.noreply.github.com> * Update src/Runner.Worker/JobExtension.cs Co-authored-by: Thomas Boop <52323235+thboop@users.noreply.github.com> * Rename env * Add test for throwing when no container but required * Update src/Runner.Worker/JobExtension.cs * Update src/Test/L0/Worker/JobExtensionL0.cs * Update src/Runner.Common/Constants.cs Co-authored-by: Thomas Boop <52323235+thboop@users.noreply.github.com> Co-authored-by: Thomas Boop <52323235+thboop@users.noreply.github.com>
This commit is contained in:
@@ -9,6 +9,7 @@ using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using GitHub.DistributedTask.Expressions2;
|
||||
using GitHub.DistributedTask.ObjectTemplating.Tokens;
|
||||
using GitHub.DistributedTask.Pipelines;
|
||||
using GitHub.DistributedTask.Pipelines.ContextData;
|
||||
using GitHub.DistributedTask.Pipelines.ObjectTemplating;
|
||||
using GitHub.DistributedTask.WebApi;
|
||||
@@ -206,6 +207,7 @@ namespace GitHub.Runner.Worker
|
||||
// Evaluate the job container
|
||||
context.Debug("Evaluating job container");
|
||||
var container = templateEvaluator.EvaluateJobContainer(message.JobContainer, jobContext.ExpressionValues, jobContext.ExpressionFunctions);
|
||||
ValidateJobContainer(container);
|
||||
if (container != null)
|
||||
{
|
||||
jobContext.Global.Container = new Container.ContainerInfo(HostContext, container);
|
||||
@@ -672,5 +674,13 @@ namespace GitHub.Runner.Worker
|
||||
Trace.Info($"Total accessible running process: {snapshot.Count}.");
|
||||
return snapshot;
|
||||
}
|
||||
|
||||
private static void ValidateJobContainer(JobContainer container)
|
||||
{
|
||||
if (StringUtil.ConvertToBoolean(Environment.GetEnvironmentVariable(Constants.Variables.Actions.RequireJobContainer)) && container == null)
|
||||
{
|
||||
throw new ArgumentException("Jobs without a job container are forbidden on this runner, please add a 'container:' to your job or contact your self-hosted runner administrator.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user