Example: packaged-artifact E2E variant (wasm packaging smoke test)#166
Draft
bpapillon wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #165 as a concrete example of the packaging-coverage follow-up.
The rules-engine wasm ships two ways that a source build never exercises: the
.wasmembedded in the SDK DLL at pack time, and the transitive Wasmtime nativelibrary (
libwasmtime) resolved per-RID at restore. The existing E2E testapp uses a<ProjectReference>to local source, so its green run only proves the working treecompiles — not that the published NuGet artifact loads and evaluates.
This adds a parallel
testapp-packaged/that consumesSchematicHQ.Clientas aNuGet
PackageReferencerestored from a local feed (scripts/e2e-pack.shpacks itand asserts the embedded wasm survived). Wired into the shared suite in a datastream
mode, it runs a real flag check through the packaged wasm + Wasmtime, exactly as an
end user would. App logic is shared with
testapp/via a linkedProgram.cs.Caveat documented in
testapp-packaged/README.md: CI runners arelinux-x64glibc —the one RID Wasmtime ships — so this proves the pack/restore/embed chain but not
Alpine/musl, arm, Windows, or macOS. Covering those needs the packaged testapp run
inside the target base image, asserting a rule-derived value (the SDK degrades to
flag defaults on engine-init failure, so a missing native lib is otherwise silent).
Not yet wired into
schematic-api/.github/workflows/sdk_e2e.yml— the matrix snippetis in the README. Draft; needs one
./scripts/e2e-pack.shrun to confirm the guard.