[Infrastructure] Switch to arcade and use SDK Style projects - WIP#23988
[Infrastructure] Switch to arcade and use SDK Style projects - WIP#23988jashook wants to merge 33 commits intodotnet:masterfrom
Conversation
* Add RestoreArcade target and some other properties to SOS NETCore project * Remove the hack to Skip SoS for arcade builds
Move SOS to SDK build
This allows us to get a clean SPC with ILLink
Clean build on OSX
Windows Build update
|
This PR currently has conflicts, I will rebase. |
It looks like you added a |
|
@mikedn I am not sold on the usage of the .sln files. Currently it has been added because it is the only OOB multi-project build support provided by the dotnet sdk. It adds complexity, and in some ways fragility to the system. The benefit is that this is supported by the dotnet sdk, and instead of our custom msbuild logic, it should be improved incrementally with further sdk changes. @sbomer @echesakovMSFT also have strong opinions, I believe mostly against the change. If it is decided not to make the change, that is fine too. At the very minimum it allowed me to make quick forward progress on porting the tests to SDK style projects. |
|
/cc @RussKeldorph |
|
An alternative option to solution files may be to use the Microsoft.Build.Traversal MSBuild SDK from https://github.com/Microsoft/MSBuildSdks/tree/master/src/Traversal It allows you to do multi-project builds via simpler |
Here is another one: dotnet/msbuild#1730 (comment). Hopefully VS team will pick it up and refresh the SLN file format based on XML. |
|
@jashook I am going to carve off some of this work and apply it directly to master. Some of the minor changes I made can be found in https://github.com/AaronRobinsonMSFT/coreclr/tree/arcade_tests_build |
|
I agree, when you put out a pr feel free to include me on the review. I am curious to see where the split is. |
This is a fairly large change to our build infrastructure that does several key/important things.
Overview
General
build.sh/build.cmd
bin/Product/${__BuildOS}.${__BuildArch}.${__BuildConfig}toartifacts/Product/${__BuildOS}/${__BuildArch}/${__BuildConfig}build-test.sh/build-test.cmd
Remaining work
This PR is accurately a work in progress, building both the product and the tests complete; however, the following are still not working:
a. This should only require a default build target to depend on the existing runtest.proj targets.
a. The usage of sln files will change our addition of tests to the repository.
b. Now in order to add a test, a dotnet sdk command will need to be called. An example call to add a test would be
~/coreclr/.dotnet/dotnet sln tests/src/priority_0-1.sln JIT/Regression/newTest/newTest.csprojThe following is not investigated, and will probably require more work:
Cleanup work
The following would be nice to have cleanup work that is enabled by this change: