Openjdk-infrastructure: Ensure all Windows build machines have same compiler level

Created on 13 Apr 2020  路  14Comments  路  Source: AdoptOpenJDK/openjdk-infrastructure

Platform:
Windows

Architecture:
any

@jdekonin mentioned the Windows playbooks install the latest VS2017 compiler. Meaning that if build machines are created at different times, they could have different levels of the VS2017 compiler on them. Ideally all build machines should have the same level of VS2017, so the build isn't affected by what machine it lands on.

Not sure if the same issue applies to VS2010.

enhancement windows

Most helpful comment

It's possible to create an offline cache of a particular version. Then all machines should get that version until there is a decision to switch to a different one.
https://docs.microsoft.com/en-us/visualstudio/install/create-an-offline-installation-of-visual-studio?view=vs-2017

All 14 comments

Do you have a proposal for how to implement this? And is this a theoretical issue or something you've seen an issue with?

My proposal is to fix at some known version for all machines, until such time as all machines are updated to a different known version. This a theoretical issue. If there is some difference in the code generated from different compiles, it could cause a lot of confusion if the behavior changes based on the machine where the build was compiled.

My question was more whether you knew of an easy way to fix it - we pull the installer from https://aka.ms/vs/15/release/vs_community.exe

We might be able (subject to licensing) to copy a fixed version of that executable somewhere and run that instead of downloading it from the original source each time, but that would also be subject to whether MS's installer allows the downloading of earlier versions.

I believe @jdekonin mentioned there is a way to get particular versions.

Not for getting the older versions. I have @kevin-bonilla looking into whether that is possible.

From my msdn account I don't see any download for older versions, so unless there is a method via the installer or someone has an "offline installer installation", I don't see any options to accomplish this yet.

Not for getting the older versions. I have @kevin-bonilla looking into whether that is possible.

From my msdn account I don't see any download for older versions, so unless there is a method via the installer or someone has an "offline installer installation", I don't see any options to accomplish this yet.

Yeah I still need to do some further research to see if this is still possible. I tried digging through some DevOps microsoft tool as well called Visual Studio Dev Essentials but that product as well only gives me the Visual Studio Installer which would install the latest 15.9.22

Copying in my comment from #1354 as I don't want conversations fragmented across issues
This would need wider approval I think before doing it than just me.
Are we also confident that such a solution is allowed within the terms of the license agreement for the free compiler download?

It's possible to create an offline cache of a particular version. Then all machines should get that version until there is a decision to switch to a different one.
https://docs.microsoft.com/en-us/visualstudio/install/create-an-offline-installation-of-visual-studio?view=vs-2017

I believe all the OpenJ9 machines were updated to 15.9.22, @jdekonin will need to confirm. However the latest version is now 15.9.23 so you can't get 15.9.22 any more unless you already have an offline cache for it.

OpenJ9 machines are at 15.9.22 using a offline installer for VS Pro, not the Community version as corporate machines can't be using the free version.

@jdekonin The OpenJ9 machines used publicly at https://ci.eclipse.org/openj9?

Yes these machines are also using the same VS Pro. I checked with my licensing contact and she advised we could use the same for internal IBM and the IBM Cloud Windows instances.

This was more of a convenience issue as my team supports not only these 6 windows machines but an internal IBM machine build/test farm that cannot use the VS Community version.

Here at adopt we use the community version as installed by the playbooks. Unless this can be done through the community version this /may/ be a non-starter ... Although we do have some MSFT people on the team but I have a slight preference for using the same freely available tools that others may use our scripts with.

The community version is listed in the instructions for creating an offline cache.
https://docs.microsoft.com/en-us/visualstudio/install/create-an-offline-installation-of-visual-studio?view=vs-2017

Was this page helpful?
0 / 5 - 0 ratings