Skip to content

Commit c434a9a

Browse files
Finish Merge (#646)
* Accept action schema extension to be ignored * Fix parameter passing to Expression Parser due to merge * Update "new" YamlObjectReader to work in newer YamlDotnet
1 parent 9c92e84 commit c434a9a

5 files changed

Lines changed: 49 additions & 21 deletions

File tree

src/Runner.Worker/ActionManifestManager.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -332,15 +332,15 @@ private TemplateContext CreateTemplateContext(
332332
var absoluteActions = executionContext.Global.Variables.GetBoolean("system.runner.server.absolute_actions") == true;
333333
var result = new TemplateContext
334334
{
335-
// Flags = flags,
335+
// TODO for cutover: Flags = flags,
336336
CancellationToken = CancellationToken.None,
337337
Errors = new TemplateValidationErrors(10, int.MaxValue), // Don't truncate error messages otherwise we might not scrub secrets correctly
338338
Memory = new TemplateMemory(
339339
maxDepth: 100,
340340
maxEvents: 1000000,
341341
maxBytes: 10 * 1024 * 1024),
342342
Schema = schema,
343-
// AbsoluteActions = absoluteActions,
343+
// TODO for cutover: AbsoluteActions = absoluteActions,
344344
// TODO: Switch to real tracewriter for cutover
345345
TraceWriter = new GitHub.Actions.WorkflowParser.ObjectTemplating.EmptyTraceWriter(),
346346
AllowCaseFunction = false,

src/Sdk/DTExpressions2/Expressions2/ExpressionParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public IExpressionNode CreateTree(
3333
IEnumerable<IFunctionInfo> functions,
3434
Boolean allowCaseFunction = true)
3535
{
36-
var context = new ParseContext(expression, trace, namedValues, functions, allowCaseFunction, flags: Flags);
36+
var context = new ParseContext(expression, trace, namedValues, functions, allowCaseFunction: allowCaseFunction, flags: Flags);
3737
context.Trace.Info($"Parsing expression: <{expression}>");
3838
var node = CreateTree(context);
3939
// Syntax is valid, now report context names

src/Sdk/WorkflowParser/Conversion/YamlObjectReader.cs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ public Boolean AllowLiteral(out LiteralToken value)
3737
if (EvaluateCurrent() is Scalar scalar)
3838
{
3939
// Tag specified
40-
if (!String.IsNullOrEmpty(scalar.Tag.Value))
40+
if (!scalar.Tag.IsEmpty && !scalar.Tag.IsNonSpecific)
4141
{
4242
// String tag
4343
if (String.Equals(scalar.Tag.Value, c_stringTag, StringComparison.Ordinal))
4444
{
45-
value = new StringToken(m_fileId, scalar.Start.Line, scalar.Start.Column, scalar.Value);
45+
value = new StringToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, scalar.Value);
4646
MoveNext();
4747
return true;
4848
}
@@ -94,15 +94,15 @@ public Boolean AllowLiteral(out LiteralToken value)
9494
}
9595
else
9696
{
97-
value = new StringToken(m_fileId, scalar.Start.Line, scalar.Start.Column, scalar.Value);
97+
value = new StringToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, scalar.Value);
9898
}
9999

100100
MoveNext();
101101
return true;
102102
}
103103

104104
// Otherwise assume string
105-
value = new StringToken(m_fileId, scalar.Start.Line, scalar.Start.Column, scalar.Value);
105+
value = new StringToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, scalar.Value);
106106
MoveNext();
107107
return true;
108108
}
@@ -115,7 +115,7 @@ public Boolean AllowSequenceStart(out SequenceToken value)
115115
{
116116
if (EvaluateCurrent() is SequenceStart sequenceStart)
117117
{
118-
value = new SequenceToken(m_fileId, sequenceStart.Start.Line, sequenceStart.Start.Column);
118+
value = new SequenceToken(m_fileId, (int)sequenceStart.Start.Line, (int)sequenceStart.Start.Column);
119119
MoveNext();
120120
return true;
121121
}
@@ -139,7 +139,7 @@ public Boolean AllowMappingStart(out MappingToken value)
139139
{
140140
if (EvaluateCurrent() is MappingStart mappingStart)
141141
{
142-
value = new MappingToken(m_fileId, mappingStart.Start.Line, mappingStart.Start.Column);
142+
value = new MappingToken(m_fileId, (int)mappingStart.Start.Line, (int)mappingStart.Start.Column);
143143
MoveNext();
144144
return true;
145145
}
@@ -481,12 +481,12 @@ private Boolean MatchBoolean(
481481
case "true":
482482
case "True":
483483
case "TRUE":
484-
value = new BooleanToken(m_fileId, scalar.Start.Line, scalar.Start.Column, true);
484+
value = new BooleanToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, true);
485485
return true;
486486
case "false":
487487
case "False":
488488
case "FALSE":
489-
value = new BooleanToken(m_fileId, scalar.Start.Line, scalar.Start.Column, false);
489+
value = new BooleanToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, false);
490490
return true;
491491
}
492492

@@ -511,17 +511,17 @@ private Boolean MatchFloat(
511511
case "+.inf":
512512
case "+.Inf":
513513
case "+.INF":
514-
value = new NumberToken(m_fileId, scalar.Start.Line, scalar.Start.Column, Double.PositiveInfinity);
514+
value = new NumberToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, Double.PositiveInfinity);
515515
return true;
516516
case "-.inf":
517517
case "-.Inf":
518518
case "-.INF":
519-
value = new NumberToken(m_fileId, scalar.Start.Line, scalar.Start.Column, Double.NegativeInfinity);
519+
value = new NumberToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, Double.NegativeInfinity);
520520
return true;
521521
case ".nan":
522522
case ".NaN":
523523
case ".NAN":
524-
value = new NumberToken(m_fileId, scalar.Start.Line, scalar.Start.Column, Double.NaN);
524+
value = new NumberToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, Double.NaN);
525525
return true;
526526
}
527527

@@ -564,7 +564,7 @@ private Boolean MatchFloat(
564564
// Try parse
565565
if (Double.TryParse(str, NumberStyles.AllowLeadingSign | NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out var doubleValue))
566566
{
567-
value = new NumberToken(m_fileId, scalar.Start.Line, scalar.Start.Column, doubleValue);
567+
value = new NumberToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, doubleValue);
568568
return true;
569569
}
570570
// Otherwise exceeds range
@@ -598,7 +598,7 @@ private Boolean MatchFloat(
598598
// Try parse
599599
if (Double.TryParse(str, NumberStyles.AllowLeadingSign | NumberStyles.AllowDecimalPoint | NumberStyles.AllowExponent, CultureInfo.InvariantCulture, out var doubleValue))
600600
{
601-
value = new NumberToken(m_fileId, scalar.Start.Line, scalar.Start.Column, (Double)doubleValue);
601+
value = new NumberToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, (Double)doubleValue);
602602
return true;
603603
}
604604
// Otherwise exceeds range
@@ -631,7 +631,7 @@ private Boolean MatchInteger(
631631
// Try parse
632632
if (Double.TryParse(str, NumberStyles.None, CultureInfo.InvariantCulture, out var doubleValue))
633633
{
634-
value = new NumberToken(m_fileId, scalar.Start.Line, scalar.Start.Column, doubleValue);
634+
value = new NumberToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, doubleValue);
635635
return true;
636636
}
637637

@@ -646,7 +646,7 @@ private Boolean MatchInteger(
646646
// Try parse
647647
if (Double.TryParse(str, NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out var doubleValue))
648648
{
649-
value = new NumberToken(m_fileId, scalar.Start.Line, scalar.Start.Column, doubleValue);
649+
value = new NumberToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, doubleValue);
650650
return true;
651651
}
652652

@@ -662,7 +662,7 @@ private Boolean MatchInteger(
662662
// Try parse
663663
if (Int32.TryParse(str.Substring(2), NumberStyles.AllowHexSpecifier, CultureInfo.InvariantCulture, out var integerValue))
664664
{
665-
value = new NumberToken(m_fileId, scalar.Start.Line, scalar.Start.Column, integerValue);
665+
value = new NumberToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, integerValue);
666666
return true;
667667
}
668668

@@ -687,7 +687,7 @@ private Boolean MatchInteger(
687687
ThrowInvalidValue(scalar, c_integerTag); // throws
688688
}
689689

690-
value = new NumberToken(m_fileId, scalar.Start.Line, scalar.Start.Column, integerValue);
690+
value = new NumberToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column, integerValue);
691691
return true;
692692
}
693693
}
@@ -708,7 +708,7 @@ private Boolean MatchNull(
708708
case "Null":
709709
case "NULL":
710710
case "~":
711-
value = new NullToken(m_fileId, scalar.Start.Line, scalar.Start.Column);
711+
value = new NullToken(m_fileId, (int)scalar.Start.Line, (int)scalar.Start.Column);
712712
return true;
713713
}
714714

src/Sdk/WorkflowParser/ObjectTemplating/Schema/Definition.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,27 @@ protected Definition(MappingToken definition)
4949
{
5050
definition.RemoveAt(i);
5151
}
52+
else if (String.Equals(definitionKey.Value, "actionsIfExpression", StringComparison.Ordinal))
53+
{
54+
// TODO actionsIfExpression
55+
// var actionifexpr = definition[i].Value.AssertBoolean($"actionsIfExpression");
56+
definition.RemoveAt(i);
57+
// ActionsIfExpression = actionifexpr.Value;
58+
}
59+
else if (String.Equals(definitionKey.Value, "azureVariableBlock", StringComparison.Ordinal))
60+
{
61+
// TODO azureVariableBlock
62+
// var actionifexpr = definition[i].Value.AssertBoolean($"azureVariableBlock");
63+
definition.RemoveAt(i);
64+
// AzureVariableBlock = actionifexpr.Value;
65+
}
66+
else if (String.Equals(definitionKey.Value, "azureVariableBlockScope", StringComparison.Ordinal))
67+
{
68+
// TODO azureVariableBlockScope
69+
// var actionifexpr = definition[i].Value.AssertBoolean($"azureVariableBlockScope");
70+
definition.RemoveAt(i);
71+
// AzureVariableBlockScope = actionifexpr.Value;
72+
}
5273
else
5374
{
5475
i++;

src/Sdk/WorkflowParser/ObjectTemplating/Schema/TemplateSchema.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,9 @@ private TemplateSchema(MappingToken mapping)
115115
case TemplateConstants.CoerceRaw:
116116
case TemplateConstants.Context:
117117
case TemplateConstants.Description:
118+
case "actionsIfExpression":
119+
case "azureVariableBlock":
120+
case "azureVariableBlockScope":
118121
continue;
119122

120123
default:
@@ -357,6 +360,7 @@ private static TemplateSchema Schema
357360
mappingDefinition.Properties.Add(TemplateConstants.CoerceRaw, new PropertyDefinition(new StringToken(null, null, null, TemplateConstants.Boolean)));
358361
mappingDefinition.Properties.Add(TemplateConstants.Context, new PropertyDefinition(new StringToken(null, null, null, TemplateConstants.SequenceOfNonEmptyString)));
359362
mappingDefinition.Properties.Add(TemplateConstants.String, new PropertyDefinition(new StringToken(null, null, null, TemplateConstants.StringDefinitionProperties)));
363+
mappingDefinition.Properties.Add("actionsIfExpression", new PropertyDefinition(new StringToken(null, null, null, TemplateConstants.Boolean)));
360364
schema.Definitions.Add(TemplateConstants.StringDefinition, mappingDefinition);
361365

362366
// string-definition-properties
@@ -373,6 +377,7 @@ private static TemplateSchema Schema
373377
mappingDefinition.Properties.Add(TemplateConstants.CoerceRaw, new PropertyDefinition(new StringToken(null, null, null, TemplateConstants.Boolean)));
374378
mappingDefinition.Properties.Add(TemplateConstants.Context, new PropertyDefinition(new StringToken(null, null, null, TemplateConstants.SequenceOfNonEmptyString)));
375379
mappingDefinition.Properties.Add(TemplateConstants.Sequence, new PropertyDefinition(new StringToken(null, null, null, TemplateConstants.SequenceDefinitionProperties)));
380+
mappingDefinition.Properties.Add("azureVariableBlock", new PropertyDefinition(new StringToken(null, null, null, TemplateConstants.Boolean)));
376381
schema.Definitions.Add(TemplateConstants.SequenceDefinition, mappingDefinition);
377382

378383
// sequence-definition-properties
@@ -386,6 +391,8 @@ private static TemplateSchema Schema
386391
mappingDefinition.Properties.Add(TemplateConstants.CoerceRaw, new PropertyDefinition(new StringToken(null, null, null, TemplateConstants.Boolean)));
387392
mappingDefinition.Properties.Add(TemplateConstants.Context, new PropertyDefinition(new StringToken(null, null, null, TemplateConstants.SequenceOfNonEmptyString)));
388393
mappingDefinition.Properties.Add(TemplateConstants.Mapping, new PropertyDefinition(new StringToken(null, null, null, TemplateConstants.MappingDefinitionProperties)));
394+
mappingDefinition.Properties.Add("azureVariableBlock", new PropertyDefinition(new StringToken(null, null, null, TemplateConstants.Boolean)));
395+
mappingDefinition.Properties.Add("azureVariableBlockScope", new PropertyDefinition(new StringToken(null, null, null, TemplateConstants.Boolean)));
389396
schema.Definitions.Add(TemplateConstants.MappingDefinition, mappingDefinition);
390397

391398
// mapping-definition-properties

0 commit comments

Comments
 (0)