Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unify build workflow and switch logic for Unix based build workflow #10006

Open
4creators opened this issue Mar 23, 2018 · 4 comments
Open

Unify build workflow and switch logic for Unix based build workflow #10006

4creators opened this issue Mar 23, 2018 · 4 comments
Labels
area-Infrastructure-coreclr backlog-cleanup-candidate An inactive issue that has been marked for automated closure. enhancement Product code improvement that does NOT require public API changes/additions help wanted [up-for-grabs] Good issue for external contributors no-recent-activity
Milestone

Comments

@4creators
Copy link
Contributor

Build workflow on Linux/macOS/FreeBSD differs from Windows in the order in which test components are built.

Running ./build.sh on Linux with -skiptests parameter skips build of native tests (they go into __BinDir/bin) which are later not built when running ./build-test.sh script. This is the result of moving unix native tests build into ./build.sh script what is breaking change for the build workflow and is not reflected in script documentation. This is the result of original design where native tests were built by ./build.sh script and managed tests wre built on Windows and Unix have had no script to support managed test build.

We should build native test components on unixes using ./build-test.sh command. As this may interfere with CI workflow where managed unix tests are build on Windows it would be necessary to have -skipmanaged switch in ./build-test.sh to build only native test components.
if [ ! -d "$__BinDir" ] || [ ! -d "$__BinDir/bin" ]; then test should trigger native test components build and follow Windows workflow.

@janvorli
Copy link
Member

@4creators just a minor correction to your statement:

This is the result of moving unix native tests build into ./build.sh script what is breaking change for the build workflow and is not reflected in script documentation.

This was always like this. The build-test.sh was added quite recently, there was no way to build managed test parts before.

@RussKeldorph
Copy link
Contributor

I would love to see us make the build workflow consistent after 2.1 finally forks. I would also like us to remove all test build logic from build.cmd/.sh. Test building should be entirely confined to build-test.*, like corefx. Unfortunately, there's a lot of downstream impact given the CI and official build systems, so we have to be careful. We also probably need to address the incredible slowness of msbuild one way or another. It's even worse on Unix than it is on Windows.

@4creators
Copy link
Contributor Author

We also probably need to address the incredible slowness of msbuild one way or another. It's even worse on Unix than it is on Windows

Right now I have working fix for priority 1 and above on Windows which at the same time reduces memory usage by around 4x. I have hit problem in this issue while working on porting my fix to Unix test builds.

@msftgits msftgits transferred this issue from dotnet/coreclr Jan 31, 2020
@msftgits msftgits added this to the Future milestone Jan 31, 2020
Copy link
Contributor

Due to lack of recent activity, this issue has been marked as a candidate for backlog cleanup. It will be closed if no further activity occurs within 14 more days. Any new comment (by anyone, not necessarily the author) will undo this process.

This process is part of our issue cleanup automation.

@dotnet-policy-service dotnet-policy-service bot added backlog-cleanup-candidate An inactive issue that has been marked for automated closure. no-recent-activity labels May 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-Infrastructure-coreclr backlog-cleanup-candidate An inactive issue that has been marked for automated closure. enhancement Product code improvement that does NOT require public API changes/additions help wanted [up-for-grabs] Good issue for external contributors no-recent-activity
Projects
Status: No status
Development

No branches or pull requests

4 participants