mirror of
https://github.com/actions/runner.git
synced 2025-12-27 03:48:56 +08:00
[1742] Ensure multiple composite annoations are correctly written. (#2311)
* [1742] Ensure multiple composite annoations are correctly written. This implementation uses a collector pattern to allow embedded ExecutionContexts to stash Issue objects for later processing by a non-embedded ancestor ExecutionContext. Also: - Provide explicit constructor implementations for ExecutionContext - Leverage explicit constructors to solidify immutability of several ExecutionContext class members. - Fixed erroneous call to ExecutionContext.Complete in CompositeActionHandler.cs - Use a consistent timestamp for FinishTime in ExecutionContext::Complete * Ensure collected issues are processed only by a non-embedded ExecutionContext. This was already implicit. Now, just making it explicit. * Provide a clear mechanism that allows callers to opt-in/opt-out of ExecutionContext::AddIssue's logging behavior. * Addressed deserialization inconsistencies in TimelineRecord.cs * Added TimelineRecord unit tests. * Refined unit tests related to TimelineRecord::Variables case-insensitivity * Add a unit test that verifies ExecutionContextLogOptions::LogMessageOverride has the desired effect. * Responded to PR feedback. * Don't allow embedded ExecutionContexts to add Issues to a TimelineRecord
This commit is contained in:
committed by
GitHub
parent
1bc14f0607
commit
f8a28c3c4e
70
src/Test/TestData/timelinerecord_json_samples.yml
Normal file
70
src/Test/TestData/timelinerecord_json_samples.yml
Normal file
@@ -0,0 +1,70 @@
|
||||
minimal: |
|
||||
{ "Name": "minimal" }
|
||||
invalid-attempt-value: |
|
||||
{
|
||||
"Name": "invalid-attempt-value",
|
||||
"Attempt": -99
|
||||
}
|
||||
zero-attempt-value: |
|
||||
{
|
||||
"Name": "zero-attempt-value",
|
||||
"Attempt": 0
|
||||
}
|
||||
legacy-nulls: |
|
||||
{
|
||||
"Name": "legacy-nulls",
|
||||
"ErrorCount": null,
|
||||
"WarningCount": null,
|
||||
"NoticeCount": null
|
||||
}
|
||||
missing-counts: |
|
||||
{
|
||||
"Name": "missing-counts"
|
||||
}
|
||||
non-zero-counts: |
|
||||
{
|
||||
"Name": "non-zero-counts",
|
||||
"ErrorCount": 10,
|
||||
"WarningCount": 20,
|
||||
"NoticeCount": 30
|
||||
}
|
||||
explicit-null-collections: |
|
||||
{
|
||||
"Name": "explicit-null-collections",
|
||||
"Issues": null,
|
||||
"PreviousAttempts": null,
|
||||
"Variables": null
|
||||
}
|
||||
lean: |
|
||||
{
|
||||
"Id": "00000000-0000-0000-0000-000000000000",
|
||||
"Name": "lean",
|
||||
"LastModified": "\/Date(1679073003252+0000)\/",
|
||||
"Issues": [
|
||||
{
|
||||
"Type": 0,
|
||||
"Category": null,
|
||||
"Message": null,
|
||||
"IsInfrastructureIssue": null
|
||||
}
|
||||
],
|
||||
"Variables": [
|
||||
{ "Key": "x", "Value": { "Value": "1" } },
|
||||
{ "Key": "y", "Value": { "Value": "2" } },
|
||||
{ "Key": "z", "Value": { "Value": "3" } }
|
||||
],
|
||||
"Attempt": 4,
|
||||
"PreviousAttempts": [
|
||||
{ "Attempt": 1 },
|
||||
{ "Attempt": 2 },
|
||||
{ "Attempt": 3 }
|
||||
]
|
||||
}
|
||||
duplicate-variable-keys: |
|
||||
{
|
||||
"Name": "duplicate-variable-keys",
|
||||
"Variables": [
|
||||
{ "Key": "aaa", "Value": { "Value": "a.1" } },
|
||||
{ "Key": "AAA", "Value": { "Value": "a.2" } }
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user