dotnet / sdk

Core functionality needed to create .NET Core projects, that is shared between Visual Studio and CLI
https://dot.net/core
MIT License
2.74k stars 1.07k forks source link

Use arcade infra for DEB and RPM build #45047

Open NikolaMilosavljevic opened 6 hours ago

NikolaMilosavljevic commented 6 hours ago

Resolves https://github.com/dotnet/sdk/issues/43688

This enables SDK to use shared infrastructure for DEB and RPM build. It also uses the latest tooling implemented by @jkoritzinsky which enables us to run the build on containers without special tooling, i.e. FPM/dep-package-tool. I have updated the pipeline to use simple containers.

Previously, there was a simple test that ensured installation of SDK package, along with all of the dependencies. The test had limited value. I have created an issue (epic) to track all improvements around installer testing - https://github.com/dotnet/runtime/issues/109736, as well as package installation - https://github.com/dotnet/runtime/issues/109848

Manpages were never installed with SDK package even though there was some 'code' in the old infra. There was a bug in that code. New shared infrastructure supports manpages but due to a current issue, it does not install them to the correct location. I have created two issues to track relevant fixes:: https://github.com/dotnet/arcade/issues/15243 and https://github.com/dotnet/sdk/issues/44833

There are some minor differences in metadata contents. It, now, better matches other .NET packages, i.e. those produced by runtime. I will be following up on these differences to understand their significance - will create issues if necessary.

Testing

Fully tested with internal build: https://dev.azure.com/dnceng/internal/_build/results?buildId=2586841&view=results