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

x/build: run a Windows Server 2016 builder #17513

Closed
bradfitz opened this issue Oct 19, 2016 · 18 comments
Closed

x/build: run a Windows Server 2016 builder #17513

bradfitz opened this issue Oct 19, 2016 · 18 comments
Labels
Builders x/build issues (builders, bots, dashboards) FrozenDueToAge OS-Windows
Milestone

Comments

@bradfitz
Copy link
Contributor

As @quentinmit noted in #17365 (comment) , GCE now has Windows Server 2016 (NT 10.0, ~Windows 10).

We should run a builder for it.

@quentinmit, do you want to do it?

/cc @alexbrainman

@bradfitz bradfitz added the Builders x/build issues (builders, bots, dashboards) label Oct 19, 2016
@bradfitz bradfitz added this to the Unreleased milestone Oct 19, 2016
@quentinmit
Copy link
Contributor

I'm up for trying to set this up but I don't think I have time until after feature freeze.

@quentinmit quentinmit self-assigned this Oct 19, 2016
@bradfitz
Copy link
Contributor Author

That's fine. I've found the back half the dev cycle to be a better time for builder work too.

@bradfitz
Copy link
Contributor Author

See https://github.com/golang/build/tree/master/env/windows when you're ready.

@alexbrainman
Copy link
Member

I am happy to help with whatever you need. The https://github.com/golang/build/tree/master/env/windows is pretty good. I don't think Windows Server 2016 will be much different. I did manage to build Windows Server 2008 of my own to use, but I have no idea how you manage disk image (for the builders) once you build it. Like I said, let me know and I will help.

Alex

@gopherbot
Copy link
Contributor

CL https://golang.org/cl/41393 mentions this issue.

@gopherbot
Copy link
Contributor

CL https://golang.org/cl/41395 mentions this issue.

gopherbot pushed a commit that referenced this issue Apr 21, 2017
This doesn't appear to be present on Windows Server 2012 or 2016:

https://build.golang.org/log/6ea21b99c9b8a2be20f9aeaec6c425b84faf1af7
https://build.golang.org/log/2bcf04f1df003577352f4f987a39a59a081094ee

Updates #17513
Updates #20073

Change-Id: I72820704b4cb16bb1720b7f6a9f2e10028c71334
Reviewed-on: https://go-review.googlesource.com/41395
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
@alexbrainman
Copy link
Member

FYI
While debugging #18555 I noticed that Windows Server 2016 comes with Docker.
I followed approximately this https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-server (I started at #18555 (comment) ).

Alex

gopherbot pushed a commit to golang/build that referenced this issue Apr 21, 2017
See also: https://golang.org/cl/41142

Updates golang/go#17513

Change-Id: Ie743ae4604e65892e28423ed0af008450b647197
Reviewed-on: https://go-review.googlesource.com/41393
Reviewed-by: Jeff Johnson <jrjohnson@google.com>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
@bradfitz
Copy link
Contributor Author

@johnsonj, the new 2008, 2012, and 2016 builders are working great, but before I take down the old ones and switch over trybots, we need to make 32-bit mode (GOARCH=386 + GOHOSTARCH=386) work.

Currently I get:

$ gomote run -e GOARCH=386 -e GOHOSTARCH=386 user-bradfitz-windows-amd64-2008-0 go/src/all.bat
...
ok      reflect 0.262s
ok      regexp  0.174s
ok      regexp/syntax   0.711s
--- FAIL: TestStdcallAndCDeclCallbacks (1.25s)
panic: Failed to load C:\windows\TEMP\TestCDeclCallback955796461\test.dll: %1 is not a valid Win32 application. [recovered]
        panic: Failed to load C:\windows\TEMP\TestCDeclCallback955796461\test.dll: %1 is not a valid Win32 application.

@johnsonj
Copy link
Contributor

johnsonj commented Apr 24, 2017 via email

@bradfitz
Copy link
Contributor Author

Note that the old builder image had both a 32-bit and 64-bit compiler installed, and then the buildlet masked out a $PATH entry depending on the GOARCH value so the correct gcc was always used.

Not sure whether we still have to play such games. Maybe.

@gopherbot
Copy link
Contributor

CL https://golang.org/cl/41611 mentions this issue.

gopherbot pushed a commit to golang/build that referenced this issue Apr 24, 2017
…64-2008

The windows-amd64-2008 is the same OS as windows-amd64-gce but is an
auto-generated image.

TODO: 386 auto-generated Windows builders, and then maybe we'll move
TryBots to Windows Server 2016. One step at a time. This should be a
no-op.  I verified performance is the same.

Updates golang/go#17513

Change-Id: I34984db14b87d03771e15465978b1687df6895f7
Reviewed-on: https://go-review.googlesource.com/41611
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
@johnsonj
Copy link
Contributor

johnsonj commented Apr 27, 2017

Yes we do need to play the games. I'm splitting the gcc toolchain to C:\godep\gcc32 and C:\godep\gcc64 so we'll need to set the paths appropriately.

@gopherbot
Copy link
Contributor

CL https://golang.org/cl/42014 mentions this issue.

gopherbot pushed a commit to golang/build that referenced this issue Apr 27, 2017
- images now include 32bit gcc in c:\godeps\gcc32
- 64bit gcc has moved to c:\godeps\gcc64
- update host definitions for new image versions
- add windows-386-2008 host

Updates golang/go#17513

Change-Id: Ib3f5d4b2b1702c05089cf633529ebf38db270a43
Reviewed-on: https://go-review.googlesource.com/42014
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
@gopherbot
Copy link
Contributor

CL https://golang.org/cl/41142 mentions this issue.

gopherbot pushed a commit to golang/build that referenced this issue Apr 27, 2017
Generate a Windows image that will start a buildlet on boot and have the
dependencies needed for building/testing go/cgo.

provisioning:
- `sysprep.ps1`: disables unneeded features (eg UAC) and downloads
  dependencies (stage0, gcc)
- `startup.ps1`: sets up a user account for unattended login. this can't
  be done in the sysprep stage because the `local machine` does not yet
  exist to create accounts under.

helpers:
- `build.bash`: builds a single image, creates a vm from the image and
  verifies it with `test_buildlet.bash`
- `make.bash`: builds a set of images
- `connect.bash`: helper to RDP into a machine for troubleshooting
- `test_buildlet.bash`: validation script to exercise a buildlet

Updates golang/go#17513

Change-Id: I4812ed1fc9862ae0aa44b712ea270fd52d0c505f
Reviewed-on: https://go-review.googlesource.com/41142
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
@johnsonj
Copy link
Contributor

johnsonj commented May 1, 2017

@bradfitz - anything else on your mind for this issue or good to close?

@bradfitz
Copy link
Contributor Author

bradfitz commented May 1, 2017

I'd like to verify that the buildlets are coming up reliably still. I seem to recall still seeing some timing out and the coordinator auto-retrying a new machine. Let me run some numbers when I have a sec.

We also need to switch trybots (back) to using the new images. They were flipped back to the old images after the old image sometimes failed to boot.

@gopherbot
Copy link
Contributor

Change https://golang.org/cl/70845 mentions this issue: [release-branch.go1.8] net: skip Windows test using getmac if getmac cmdlet not available

gopherbot pushed a commit that referenced this issue Oct 25, 2017
…cmdlet not available

This doesn't appear to be present on Windows Server 2012 or 2016:

https://build.golang.org/log/6ea21b99c9b8a2be20f9aeaec6c425b84faf1af7
https://build.golang.org/log/2bcf04f1df003577352f4f987a39a59a081094ee

Updates #17513
Updates #20073

Change-Id: I72820704b4cb16bb1720b7f6a9f2e10028c71334
Reviewed-on: https://go-review.googlesource.com/41395
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Reviewed-on: https://go-review.googlesource.com/70845
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
@bradfitz
Copy link
Contributor Author

We've had this for ages. Closing.

(Perhaps from https://go-review.googlesource.com/41611 for #17513 or thereabouts)

@golang golang locked and limited conversation to collaborators Jan 18, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Builders x/build issues (builders, bots, dashboards) FrozenDueToAge OS-Windows
Projects
None yet
Development

No branches or pull requests

5 participants