ci(workflows): add PR-tests workflow running dotnet test - #69
Conversation
Closes a real CI gap — no test runner on master / develop PRs until now, only CodeQL static analysis. SonarCloud's signal does not include test execution. Reviewers had no GitHub-visible proof that tests pass. Workflow mirrors the existing patterns in Abblix/Kezio (pr-tests.yml) and Abblix/AuthenticationService (pr-validation.yml): - All actions pinned to commit SHAs with version comments per Docs/wiki/github-actions-security-checklist.md § Action pinning. - Top-level permissions: contents: read; persist-credentials: false on checkout to drop the GITHUB_TOKEN credential after fetch. - concurrency cancel-in-progress so a fresh push aborts stale runs. - timeout-minutes: 20 to bound runaway builds. - Three SDKs installed (8/9/10) for the cross-target library projects; tests themselves run on net10. - MTP-native test invocation (xunit.v3 + Microsoft.Testing.Platform); VSTest flags would be silently ignored.
|
|
Post-merge note (2026-04-29): rolled back from master. This PR was created against Unlike #68, the content of this PR is not preserved on develop: develop already had its own Net state:
Lesson: should have grepped the develop branch for an existing PR-tests workflow before authoring a new one. Codified the |
…69) Closes a real CI gap — no test runner on master / develop PRs until now, only CodeQL static analysis. SonarCloud's signal does not include test execution. Reviewers had no GitHub-visible proof that tests pass. Workflow mirrors the existing patterns in Abblix/Kezio (pr-tests.yml) and Abblix/AuthenticationService (pr-validation.yml): - All actions pinned to commit SHAs with version comments per Docs/wiki/github-actions-security-checklist.md § Action pinning. - Top-level permissions: contents: read; persist-credentials: false on checkout to drop the GITHUB_TOKEN credential after fetch. - concurrency cancel-in-progress so a fresh push aborts stale runs. - timeout-minutes: 20 to bound runaway builds. - Three SDKs installed (8/9/10) for the cross-target library projects; tests themselves run on net10. - MTP-native test invocation (xunit.v3 + Microsoft.Testing.Platform); VSTest flags would be silently ignored.



Summary
Closes a real CI gap — Oidc.Server has only CodeQL static-analysis on PRs; tests have never run in CI. Reviewers had no GitHub-visible proof tests pass.
Workflow mirrors
Abblix/Kezio/.github/workflows/pr-tests.ymlandAbblix/AuthenticationService/.github/workflows/pr-validation.yml:uses:pinned to commit SHAs with version comments (per github-actions-security-checklist § Action pinning).permissions: contents: read;persist-credentials: falseon checkout to drop theGITHUB_TOKENgit credential after fetch.concurrency: cancel-in-progress: true— fresh push aborts stale runs.timeout-minutes: 20— bounded runtime.Microsoft.Testing.Platform) — VSTest flags would be silently ignored.actionlintclean.Test plan
actionlint .github/workflows/pr-tests.yml— no issues.