From f994ae0542fd8016812dbbf10bdf712d87eb0766 Mon Sep 17 00:00:00 2001 From: Nick Fields <50085412+nick-invision@users.noreply.github.com> Date: Fri, 5 Jun 2020 23:09:14 -0400 Subject: [PATCH] Reduce input validation warnings (#506) * Only raise a single warning for unexpected inputs * Update invalid input test to raise single warning --- src/Runner.Worker/ActionRunner.cs | 8 +++++++- src/Test/L0/Worker/ActionRunnerL0.cs | 3 +-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Runner.Worker/ActionRunner.cs b/src/Runner.Worker/ActionRunner.cs index 0c4cc76ce..81ecf1a14 100644 --- a/src/Runner.Worker/ActionRunner.cs +++ b/src/Runner.Worker/ActionRunner.cs @@ -187,13 +187,19 @@ namespace GitHub.Runner.Worker // Validate inputs only for actions with action.yml if (Action.Reference.Type == Pipelines.ActionSourceType.Repository) { + var unexpectedInputs = new List(); foreach (var input in userInputs) { if (!validInputs.Contains(input)) { - ExecutionContext.Warning($"Unexpected input '{input}', valid inputs are ['{string.Join("', '", validInputs)}']"); + unexpectedInputs.Add(input); } } + + if (unexpectedInputs.Count > 0) + { + ExecutionContext.Warning($"Unexpected input(s) '{string.Join("', '", unexpectedInputs)}', valid inputs are ['{string.Join("', '", validInputs)}']"); + } } // Load the action environment. diff --git a/src/Test/L0/Worker/ActionRunnerL0.cs b/src/Test/L0/Worker/ActionRunnerL0.cs index f8185d26d..662ea307d 100644 --- a/src/Test/L0/Worker/ActionRunnerL0.cs +++ b/src/Test/L0/Worker/ActionRunnerL0.cs @@ -328,8 +328,7 @@ namespace GitHub.Runner.Common.Tests.Worker Assert.Equal("invalid1", finialInputs["invalid1"]); Assert.Equal("invalid2", finialInputs["invalid2"]); - _ec.Verify(x => x.AddIssue(It.Is(s => s.Message.Contains("Unexpected input 'invalid1'")), It.IsAny()), Times.Once); - _ec.Verify(x => x.AddIssue(It.Is(s => s.Message.Contains("Unexpected input 'invalid2'")), It.IsAny()), Times.Once); + _ec.Verify(x => x.AddIssue(It.Is(s => s.Message.Contains("Unexpected input(s) 'invalid1', 'invalid2'")), It.IsAny()), Times.Once); } private void Setup([CallerMemberName] string name = "")