Summary
Migrate the Publish workflow from windows-latest to ubuntu-24.04, or document the concrete blocker if Linux cannot support the current publish flow.
Background
Current GitHub Actions runner usage is split as follows:
- CI jobs (
build, test, analyzer, pack) run on ubuntu-24.04
Publish runs on windows-latest
At the workflow-definition level, Publish appears to use cross-platform tools only:
actions/checkout
pwsh
git
dotnet
gh
NuGet/login
This makes the remaining Windows requirement unclear and worth validating explicitly.
Problem
Keeping Publish on Windows without a documented technical reason has costs:
- the release path differs from the rest of CI
- runner behavior is less uniform across workflows
- troubleshooting platform-specific failures becomes harder
- future release workflow changes have to account for an otherwise isolated Windows environment
Proposal
Evaluate and, if viable, migrate Publish to ubuntu-24.04.
Expected scope:
- change the publish runner from
windows-latest to ubuntu-24.04
- verify all publish steps still work on Linux
- update any scripts or workflow logic that accidentally depend on Windows-only behavior
- document the result
If a concrete blocker is found, record it explicitly in this issue and keep Windows only if the blocker is justified.
Areas To Validate
- branch and tag resolution logic in PowerShell
- annotated tag validation
- package version resolution from the release tag
NuGet/login trusted publishing flow on Linux
dotnet nuget push behavior against both publish targets
- GitHub Release creation/update via
gh
- path handling and path separators in workflow scripts
Impact Scope
Likely impacted components:
.github/workflows/publish.yml
scripts/Validate-PublishWorkflow.ps1
- release workflow documentation
DECISIONS.md if maintainer review concludes the runner-platform policy should be recorded
Non-Goals
- Changing tag-routing rules
- Changing release tag validation rules
- Changing feed routing semantics
- Combining publish with CI jobs
Validation / Tests
- Ensure workflow invariant tests reflect the intended runner.
- Validate the publish script logic under Linux-compatible PowerShell behavior.
- Confirm tagged package publish still works from the supported release branches.
- Confirm GitHub Release creation/update still works on Linux.
- Confirm no analyzer, build, or packaging regressions are introduced.
Acceptance Criteria
Publish runs successfully on ubuntu-24.04, or
- the issue documents a concrete technical reason that
Publish must remain on Windows.
- The chosen runner is justified in documentation or issue notes.
- Workflow validation is updated to match the accepted behavior.
Summary
Migrate the
Publishworkflow fromwindows-latesttoubuntu-24.04, or document the concrete blocker if Linux cannot support the current publish flow.Background
Current GitHub Actions runner usage is split as follows:
build,test,analyzer,pack) run onubuntu-24.04Publishruns onwindows-latestAt the workflow-definition level,
Publishappears to use cross-platform tools only:actions/checkoutpwshgitdotnetghNuGet/loginThis makes the remaining Windows requirement unclear and worth validating explicitly.
Problem
Keeping
Publishon Windows without a documented technical reason has costs:Proposal
Evaluate and, if viable, migrate
Publishtoubuntu-24.04.Expected scope:
windows-latesttoubuntu-24.04If a concrete blocker is found, record it explicitly in this issue and keep Windows only if the blocker is justified.
Areas To Validate
NuGet/logintrusted publishing flow on Linuxdotnet nuget pushbehavior against both publish targetsghImpact Scope
Likely impacted components:
.github/workflows/publish.ymlscripts/Validate-PublishWorkflow.ps1DECISIONS.mdif maintainer review concludes the runner-platform policy should be recordedNon-Goals
Validation / Tests
Acceptance Criteria
Publishruns successfully onubuntu-24.04, orPublishmust remain on Windows.