Author SHA1 Message Date
forge-recovery 9f243b969a docs(ci): document centralized native verification
KofTwentyTwo/ci-policy: ci / fork-guard (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / gradle-0 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / gradle-1 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / java-docker-2 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / java-maven-3 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / manifests-4 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / node-5 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / rust-6 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / rust-7 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / rust-8 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / not-enrolled (pull_request) Skipped
KofTwentyTwo/ci-policy: native / fork-deny (pull_request) Skipped
KofTwentyTwo/ci-policy: native / swift-1 (pull_request) Skipped
KofTwentyTwo/ci-policy: native / swift-2 (pull_request) Skipped
KofTwentyTwo/ci-policy: native / swift-3 (pull_request) Skipped
KofTwentyTwo/ci-policy: Shared source and config CI / verify (pull_request) Successful in 22s
KofTwentyTwo/ci-policy: Shared source and config CI / secrets (pull_request) Successful in 22s
KofTwentyTwo/ci-policy: Shared .NET CI / secrets (pull_request) Successful in 22s
KofTwentyTwo/ci-policy: Shared source and config CI / gate (pull_request) Successful in 17s
KofTwentyTwo/ci-policy: ci / source-config-9 (pull_request) Successful in 44s
KofTwentyTwo/ci-policy: ci / ci-result (pull_request) Successful in 7s
KofTwentyTwo/ci-policy: Shared .NET CI / verify (pull_request) Successful in 1m30s
KofTwentyTwo/ci-policy: Shared .NET CI / gate (pull_request) Successful in 20s
KofTwentyTwo/ci-policy: native / dotnet-0 (pull_request) Successful in 1m55s
KofTwentyTwo/ci-policy: native / native-result (pull_request) Successful in 8s
2026-11-01 19:47:17 +00:00
2 changed files with 15 additions and 24 deletions

No files matched your search

+15
View File
@@ -0,0 +1,15 @@
# Native CI verification
AppKit is a .NET solution whose tests need a Windows host. Its native verification is **centralized**: this repository
carries no workflow that selects a host or a runner label.
- The owner-level `native.yaml` in the KofTwentyTwo CI policy repository dispatches the shared `dotnet` profile for
`KofTwentyTwo/AppKit` with inputs declared centrally (solution, test projects, coverage packages, platform).
- It runs on pushes to the protected branches, on manual dispatch, and on pull requests opened from a branch of this same
repository. A pull request from a fork never runs on a host: a Linux `fork-deny` job fails it instead.
- The `native-result` check aggregates the native job. It fails unless the AppKit native job succeeded, so a skipped,
failed or cancelled native run cannot pass.
- The primary `ci-result` check (source/config lint and secrets scan) continues to run on every pull request.
Both `ci-result` and `native-result` are required checks for `main`. Changing what runs, where, or with which inputs is
done in the CI policy repository, never in a pull request to this repository.
-24
View File
@@ -1,24 +0,0 @@
name: build
on:
push:
branches: ['**']
tags: ['v*']
jobs:
windows:
uses: self:KofTwentyTwo/ci-workflows/.gitea/workflows/windows.yaml@v1
secrets: inherit
with:
commands: |
dotnet restore AppKit.slnx -p:Platform=x64 --locked-mode
dotnet build AppKit.slnx -p:Platform=x64 -warnaserror --no-restore
# The WinUI sample is built directly so the format workspace can load its generated XAML code.
dotnet build samples/AppKit.Sample.WinUI/AppKit.Sample.WinUI.csproj -p:Platform=x64 -warnaserror --no-restore
$env:Platform = 'x64'
dotnet format AppKit.slnx --verify-no-changes --severity warn --no-restore
Remove-Item Env:Platform
dotnet test tests/KofTwentyTwo.AppKit.Tests --no-build --settings coverage.runsettings --collect:"XPlat Code Coverage" --logger trx --results-directory TestResults
pwsh -NoProfile -File ./build/Assert-Coverage.ps1 -ResultsDirectory TestResults -Packages KofTwentyTwo.AppKit,KofTwentyTwo.AppKit.Updates
# A vX.Y.Z tag packs that version; other pushes pack the 0.1.0-dev default.
$version = if ($env:GITHUB_REF_TYPE -eq 'tag') { @("-p:Version=$($env:GITHUB_REF_NAME.TrimStart('v'))") } else { @() }
dotnet pack AppKit.slnx -c Release -p:Platform=x64 -o artifacts/nuget @version
artifacts: artifacts/nuget/*.nupkg