Description
The migration tool converts a legacy .nfproj project to SDK-style (dotnet nano migrate, including the fleet command across many repos), but it does not update each repo's CI to build the converted project. The library-migration spec describes a CI / Azure Pipelines template rewriter as part of the converter (the tooling spec captures this as the second half of component C8). Today a migrated lib-* repo still has a pipeline that runs nuget restore + MSBuild.exe and only understands .nfproj, so its CI breaks or no longer matches the SDK-style project after migration.
How to solve the problem
Add a CI template rewriter, runnable as part of (or alongside) the fleet command, that updates each migrated repo's pipeline to the SDK-style toolchain:
- Rewrite the Azure DevOps pipeline (and any related CI config) from
nuget restore + MSBuild.exe to dotnet build / dotnet pack / dotnet test.
- Preserve repo-specific settings (signing, versioning via Nerdbank.GitVersioning, publish steps) and only change what the SDK-style build requires.
- Keep it idempotent and reentrant, consistent with the converter.
Acceptance: after migration, a lib-* repo's pipeline builds, packs, and tests the SDK-style project on CI without manual edits; re-running the rewriter is a no-op.
Describe alternatives you've considered
- Hand-edit each repo's CI during the fleet rollout. Does not scale to 100+ repos and is error-prone.
- Ship a single shared pipeline template repos reference. Reasonable long-term, but still requires a per-repo rewrite step to adopt; this issue can emit either an inline rewrite or a reference to a shared template.
Additional context
Description
The migration tool converts a legacy
.nfprojproject to SDK-style (dotnet nano migrate, including thefleetcommand across many repos), but it does not update each repo's CI to build the converted project. The library-migration spec describes a CI / Azure Pipelines template rewriter as part of the converter (the tooling spec captures this as the second half of component C8). Today a migratedlib-*repo still has a pipeline that runsnuget restore+MSBuild.exeand only understands.nfproj, so its CI breaks or no longer matches the SDK-style project after migration.How to solve the problem
Add a CI template rewriter, runnable as part of (or alongside) the
fleetcommand, that updates each migrated repo's pipeline to the SDK-style toolchain:nuget restore+MSBuild.exetodotnet build/dotnet pack/dotnet test.Acceptance: after migration, a
lib-*repo's pipeline builds, packs, and tests the SDK-style project on CI without manual edits; re-running the rewriter is a no-op.Describe alternatives you've considered
Additional context
dotnet nano migrate/fleet); this issue covers the CI rewrite that is not yet built.lib-*pilot. Pairs with the fleet auto-PR renderer.