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

Introduce MSVC CI #6558

Merged
merged 2 commits into from
Dec 30, 2020
Merged

Introduce MSVC CI #6558

merged 2 commits into from
Dec 30, 2020

Conversation

ppenzin
Copy link
Member

@ppenzin ppenzin commented Dec 28, 2020

Add MSVC CI jobs, testing on latest Windows VM image using provided build and test wrappers.

For #6547

@rhuanjl
Copy link
Collaborator

rhuanjl commented Dec 28, 2020

Hmm any obvious reason why the CI hasn't triggered here?

@ppenzin
Copy link
Member Author

ppenzin commented Dec 28, 2020

It failed parsing YAML. I got a little ahead of myself on the syntax after finding an example online :)

@Fly-Style Fly-Style self-requested a review December 28, 2020 20:05
@ppenzin
Copy link
Member Author

ppenzin commented Dec 28, 2020

Finally. All follow up commits are just fixing mistakes in the initial one, we don't need to preserve their messages if testing succeeds.

I am assigning 5 parallel tasks to the CMake job and 5 to MSVC. We can try to combine them into one big job, it should yield faster builds, but at expense of readability.

@ppenzin
Copy link
Member Author

ppenzin commented Dec 28, 2020

For now, I am going to give 6 jobs to CMake (covering all needed) and the remaining 4 to Visual Studio, this should work as VS builds are much faster. I am also going to rebase all changes together.

Add MSVC CI jobs, testing on latest Windows VM image using build and
test wrappers. Assign 6 jobs to 'nix CI (all it needs) and the remaining
4 - to MCVS, as it is much faster.

For #6547
@rhuanjl
Copy link
Collaborator

rhuanjl commented Dec 28, 2020

Looking at the speed comparisons - those windows builds are crazy fast.

Stand out differences:

  1. the runtests.py testrunner prints a result for every test, the windows testrunner rl.exe only prints a summary and any failures
  2. runtests.py seems to be running all tests 3 times with 3 different sets of flags, rl.exe appears to only do all the tests twice with 2 sets of flags

Use the pattern in Windows CI to create two separate steps for build and
test.

For #6547
@ppenzin
Copy link
Member Author

ppenzin commented Dec 28, 2020

Maybe we should start with hiding the output - it produces enormous amount of text. If rl.exe cap number of concurrent tests it might also be the reason why it is faster.

@rhuanjl
Copy link
Collaborator

rhuanjl commented Dec 28, 2020

Maybe we should start with hiding the output - it produces enormous amount of text. If rl.exe cap number of concurrent tests it might also be the reason why it is faster.

Testing offline the excess output vanishes if runtests.py is called without a --logfile parameter - I don't want to open a PR because I'll delay your updates but two changes to try updating test/CMakeLists.txt with:

  1. Remove --logfile ${CMAKE_BINARY_DIR}/check.log from the command? (This should drastically reduce the logging)
  2. Add -j=4 to it to make it use 4 threads which is what the windows test runner does?

Edit: tried this and it didn't work. BUT a slight tweak to runtests.py did do it - see #6559

@ppenzin
Copy link
Member Author

ppenzin commented Dec 30, 2020

@Fly-Style I am going to merge, but will definitely address any feedback in a follow-up PR.

@ppenzin ppenzin merged commit d28ac73 into master Dec 30, 2020
@ppenzin ppenzin deleted the azure-ci-msvc branch December 30, 2020 07:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants