Files
StaticLink.Avalonia/ACTION-TESTING.md

2.2 KiB

Manual artifact validation

Daily schedules are disabled during validation. No NuGet.org publication or GitHub Release is requested by the manual dispatcher on main.

Before release builds, run nuget-static-graphics.yml on skia4 with environment_only=true. This checks the actual container's Python/depot_tools, .NET 8/10, SDKs, sysroots, and C/C++ compilation plus C executable linking for all nine RIDs. Download toolchain-environment-validation to inspect the report. The same environment gate runs before every graphics and native build and must pass before the toolchain image is published for release compilation.

  • skia3: nuget-static-graphics.yml; latest stable SkiaSharp 3.
  • skia4: nuget-static-graphics.yml; latest stable SkiaSharp 4.
  • avalonia-native: nuget-avalonia-native.yml; latest stable Avalonia 11 and 12.

Download staticlink-avalonia-nuget and avalonia-smoke- from each graphics run. Download staticlink-avalonia-native- and avalonia-native-smoke-- from the native run. Native archives and source locks are also retained as Actions artifacts.

Graphics macOS smoke tests use the already published AvaloniaNative revision 1 by default, so the graphics builds do not require the experimental native revision 2 to be published. The native branch validates its own local revision 2 package separately. To test both experimental packages together, put both downloaded packages in a local NuGet feed and reference their exact versions.

Smoke executables are retained even if a later runtime validation fails. An artifact is not evidence that all validation gates passed; check job results.

The daily-native-release workflow on main currently supports manual dispatch only. Its three matrix jobs check out their own branch and dispatch independently. Use force_build=true to rebuild published versions for testing. After validation, enable the schedule on main only; non-default branches cannot run their own GitHub cron schedules. Publication remains an explicit opt-in. While publication is disabled, an unpublished package may be rebuilt on every check; add successful-run tracking before enabling artifact-only daily builds if avoiding repeated builds is required.