-
Notifications
You must be signed in to change notification settings - Fork 891
Added tests and 32-bit targets to haxm-windows Travis script #133
Conversation
Signed-off-by: Alexandro Sanchez Bach <[email protected]>
|
I forgot to mention: there's an added property |
|
Another remark: The Windows SDK still takes 5 minutes to install (I'll try to reach TravisCI devs about this). Nonetheless the total build time right now is 10 minutes, which is still within acceptable ranges, in my opinion. TravisCI limit is 50 minutes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Since this PR fixes the CI build, I'll merge it right away.
I see. I used to get missing Spectre libraries errors too, when I upgraded VS2017 last time. I forgot how exactly I fixed the problem, but it should be by installing either WDK v1809, or the Spectre libraries via the VS2017 installer, probably the latter. Are the Travis folks aware of this issue? |
They might be aware, but right now they are overwhelmed with Windows issues (it's been in early access for only a month). Plus, the root issue isn't caused by them, but actually by I'll take care of filing issues to the corresponding teams. In the meantime, disabling Spectre mitigations seems alright since we are just testing whether the driver builds (and not deploying it to end-users). |
|
Absolutely! Even Chocolatey seems to be overwhelmed--their website is down... |
|
I found the question of how to build a 32-bit Linux driver on a 64-bit system somewhat interesting. So I've done a little "proof of concept" script: build-HAXM-x86.zip Please note that this script was not tested in a Travis-CI environment, but rather on a (live) Ubuntu 14.04 x64 system. The script built a 32-bit driver in under 6 minutes, with most of the time spend in downloading packages for the chroot setup. Maybe this will be faster in a Travis-CI environment, and im sure a few tweaks will be required to get it running there. But the resulting 32-bit module, was at least successfully tested on a Ubuntu 14.04 x86 system. |
|
@maronz Thanks, please feel free to adapt the script for Travis. Hopefully it won't incur too much extra build time. Note that Linux-specific PRs need to be reviewed by @AlexAltea. |
|
While reviewing #134 I noticed a compiler warning in the Travis build log for Windows, and it appears in this PR's Travis build log, too: It shouldn't be difficult to get rid of the deprecated |
|
Ah, it seems EWDK v1809 uses MSVC 14.15.26726, whereas Travis uses 14.16.27023. Probably that's the reason. |
|
The reason that I have not done a Travis script straight away is simply a lack of experience in that matter on my part. I'm happy to go away and try to set up my own fork, and come back with a "proper" PR. I just thought it might be faster for @AlexAltea to use the parts from my script that create the chroot etc. and work it into the existing one. In any case, this raises the question whether to have a single job for Linux for both architectures (like it is for Windows) or two separate jobs. If the idea of keeping the build artifacts comes to pass, maybe one job per architecture will be better (ending up with 5 jobs across the 3 platforms). Anyway, I've updated the script somewhat to now build the modules for both architectures in one run: |
|
@maronz Thank you! I'll integrate your script into the Travis configuration file this weekend. |
|
EDIT: This issue is fixed. @maronz I've tried integrating your script into the current Travis configuration file, and nearly succeeded: There seems to be an issue with the step: You can see the full logs and the corresponding script at: When querying It's not entirely clear why does it default to |
|
Nevermind, /etc/apt/sources.list wasn't being updated correctly. EDIT: Done at #142. |
Previously, we couldn't build haxm-tests.vcxproj on TravisCI as it depends on the Windows SDK and:
The bug was filed to the maintainers of the Windows SDK and WDK (since they need to be synchronized) packages, and both offer now the version 10.0.17763.1 (v1809). Further details are available at:
windows-sdk-10.1: https://chocolatey.org/packages/windows-sdk-10.1#comment-4196624327windowsdriverkit10: https://chocolatey.org/packages/windowsdriverkit10#comment-4201628042Now the complete solution is built, both for 32-bit and 64-bit targets (on Debug mode), and tests are run. This solves the request at #123 (comment). I'm afraid 32-bit Linux builds might be too complex for now (not sure how to cross-compile drivers). We can leave this and parallelizing builds for future PRs. Either way, it's safe too assume that any 32-bit specific bugs will be caught by the 32-bit Windows builds.
Additionally, I have pinned the versions of both packages to prevent breaking the builds if they get updated again, see #129 (comment) and #126 (comment) (among others).
Signed-off-by: Alexandro Sanchez Bach [email protected]