Skip to content

ci: add Native-AOT publish+run smoke test (#132) - #213

Merged
Chris-Wolfgang merged 3 commits into
vNextfrom
ci/aot-smoke
Jul 21, 2026
Merged

ci: add Native-AOT publish+run smoke test (#132)#213
Chris-Wolfgang merged 3 commits into
vNextfrom
ci/aot-smoke

Conversation

@Chris-Wolfgang

Copy link
Copy Markdown
Owner

Stacked on #212. Adds aot-smoke.yaml + a tiny console consumer (aot-smoke/Wolfgang.Etl.TestKit.AotSmoke) that references Wolfgang.Etl.TestKit, exercises the async-enumerable pipeline TestExtractor → TestTransformer → TestLoader end-to-end, publishes it with PublishAot on windows-latest, and runs the native binary. Fails the PR if the library ever stops being AOT/trim-safe.

Notes

  • Runs on pull_request — AOT regressions block before merge (satisfies [Maintenance] testing: Trim / AOT compatibility verification (PublishAot smoke) #132 AC).
  • Consumer is isolated via empty Directory.Build.props/.targets stubs so the throwaway fixture doesn't inherit the repo's analyzer / TreatWarningsAsErrors / multi-TFM policy (unlike D20's fully-synchronous smoke, this one is inherently async and would trip CA2007-as-error).
  • Locally: consumer builds clean (0 errors) and runs AOT smoke OK: extracted 3, transformed 3, loaded 3 (exit 0). True native-link runs in CI (Windows MSVC toolchain).
  • Ported from D20-Dice, adapted for the async pipeline surface.

Closes #132 when the vNext cycle merges to main.

🤖 Generated with Claude Code

Adds aot-smoke.yaml + a tiny console consumer that references
Wolfgang.Etl.TestKit, exercises the async-enumerable pipeline
(TestExtractor -> TestTransformer -> TestLoader) end-to-end, publishes it with
PublishAot on windows-latest, and runs the native binary. Fails the PR if the
library ever stops being AOT/trim-safe.

Consumer is isolated via empty Directory.Build.props/.targets stubs so the
throwaway fixture does not inherit library analyzer/multi-TFM policy. Ported
from D20-Dice, adapted for the async pipeline surface.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 21, 2026 13:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Base automatically changed from ci/sourcelink-stepinto to vNext July 21, 2026 19:31
Chris-Wolfgang and others added 2 commits July 21, 2026 16:17
)

Aligns with the fleet SHA-pin migration (#219): checkout v7.0.0 -> v7,
setup-dotnet v5 -> v6, upload-artifact v4 -> v7, upload-sarif v3/v4 -> v4.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Directory.Build.props stub blocks the repo's MSBuild analyzer policy, but
.editorconfig is discovered by directory walk-up independently, so the root
.editorconfig's CA2007 severity still applied to the throwaway consumer and
surfaced as PR check-annotation warnings on the async awaits. Add a
root=true .editorconfig so the fixture is fully exempt from repo lint.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants