Workflow: .github/workflows/ci.yml
Runs on:
ubuntu-latestmacos-latestwindows-latestStages:
dotnet format --verify-no-changes --severity warn../check-docs.sh.Additional details:
NATIVEWEBVIEW_DIAGNOSTICS_REQUIRE_READY=1 to fail on blocking prerequisite issues.ci/baselines/diagnostics-fingerprint-baseline.txt..nupkg, .snupkg, nuspec metadata, README/license packing, and expected inter-package dependencies.Workflow: .github/workflows/docs.yml
Stages:
./build-docs.sh.site/.lunet/build/www to GitHub Pages.The workflow is push-driven and uses the same Lunet shell script locally and in CI so authored docs and API generation stay on one path.
Workflow: .github/workflows/release.yml
Trigger:
v* (for example v12.0.0)Stages:
v* tag.Release.NUGET_API_KEY is configured.Workflow: .github/workflows/extended-validation.yml
Trigger:
workflow_dispatch)cron)Stages:
scripts/run-browser-playwright-smoke.sh.macos-latest.ubuntu-latest../build-docs.sh
./check-docs.sh
./serve-docs.sh
PowerShell:
./build-docs.ps1
./serve-docs.ps1
Run the embedded browser regression suites before packaging:
dotnet test tests/NativeWebView.Core.Tests/NativeWebView.Core.Tests.csproj
node --test tests/macos-web-message-bridge.test.mjs
The Node tests execute the production macOS bridge bootstrap and exercise message
direction, listener cleanup, session isolation and JSON property preservation. They
require Node.js and are a separate local command; they are not implicitly run by
dotnet test.
For authentication consumers, verify the final package on Windows and macOS with redirect interception, interactive sign-in/MFA and federation, application-provided autofill, cancellation, process failure, resize/rehosting and profile cleanup. Check that disabled context menus and downloads remain disabled. Test after updating all consumed NativeWebView packages to the same release version. Unit tests and a source build alone do not establish native authentication compatibility.
dotnet build NativeWebView.sln -c Release
./scripts/run-platform-diagnostics-report.sh --configuration Release --no-build --platform all --output artifacts/diagnostics/platform-diagnostics-report.json --markdown-output artifacts/diagnostics/platform-diagnostics-report.md --blocking-baseline ci/baselines/blocking-issues-baseline.txt --blocking-baseline-output artifacts/diagnostics/current-blocking-baseline.txt --comparison-markdown-output artifacts/diagnostics/blocking-regression.md --comparison-json-output artifacts/diagnostics/blocking-regression.json --comparison-evaluation-markdown-output artifacts/diagnostics/gate-evaluation.md --require-baseline-sync --allow-not-ready
./scripts/validate-diagnostics-exit-code-contract.sh --configuration Release --no-build --output-dir artifacts/diagnostics/exit-code-contract --baseline ci/baselines/blocking-issues-baseline.txt --fingerprint-baseline ci/baselines/diagnostics-fingerprint-baseline.txt
dotnet pack NativeWebView.sln -c Release --no-build -o artifacts/packages
bash ./scripts/validate-nuget-packages.sh --package-dir artifacts/packages --markdown-output artifacts/packages/package-validation.md
Refresh baselines when intentional prerequisite or fingerprint changes are accepted:
./scripts/update-blocking-baseline.sh --configuration Release --platform all --output ci/baselines/blocking-issues-baseline.txt
./scripts/update-diagnostics-fingerprint-baseline.sh --configuration Release --output ci/baselines/diagnostics-fingerprint-baseline.txt