-
Notifications
You must be signed in to change notification settings - Fork 17.8k
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: add misc-compile TryBots for x/ repos #58163
Comments
(CC @golang/release) |
Since I'm currently on rotation I'll try to get to this this week, but no promises since I'm working on the release. |
Got ready for the release early. Looking at this now. The logic around I think I figured out how to fix that (just get rid of the exception), then the coordinator just needs to notice the |
Yep.
Yeah, in
This question really comes up because misc-compile trybots are the only builder types that try to multiple GOOS/GOARCH builds in one. In other ways, BuildConfig is always one test execution of an environment, so its To keep the multiple-builds-per-one-BuildConfig property in the x repo CompileOnly trybots, I think adding another field to the builder configuration is reasonable. Then runSubrepoTests can notice it in addition to CompileOnly and perform multiple GOOS/GOARCH compiles in one. You could technically avoid new fields by instead using a special env var, for example, |
You also need extra work to make sure any nested modules are built. e.g., Edit: the testRuns part of runSubrepoTests mostly handles this, provided it gets hooked up properly. |
I think everything is hooked up properly, except Would it be sufficient to just say |
Also @dmitshur, as discussed offline, I did actually break up the |
Change https://go.dev/cl/463777 mentions this issue: |
@prattmic pointed out to me that As a workaround to the fact that |
@prattmic points out I can just pass |
OK actually, it looks like |
This comment was marked as resolved.
This comment was marked as resolved.
Change https://go.dev/cl/464955 mentions this issue: |
Change https://go.dev/cl/464957 mentions this issue: |
Change https://go.dev/cl/464956 mentions this issue: |
Change https://go.dev/cl/464958 mentions this issue: |
This change splits up the misc-compile builders to only build for one platform each. This is the first step in a sequence of CLs to simplify misc-compile builders by eliminating the !SplitMakeRun paths, of which misc-compile builders are the only ones. The end result will be the support of misc-compile builders for subrepos. Splitting up misc-compile builders has the potential to increase VM demand, but each build also takes less time to run. The main way is could increase overall VM resource usage is the overhead of setting up and tearing down a VM. The other downside is more visual noise, though this is fairly minor. Note that this change also passes GOOS, GOARCH, and GOARM environment variables to buildall.sh. The goal is to eventually remove buildall.sh by just doing make.bash. (Right now buildall.sh will essentially ignore those variables and just set them itself.) For golang/go#58163. Change-Id: Ia48f6a16d080e9e078b2959dea3b68fe43def8ec Reviewed-on: https://go-review.googlesource.com/c/build/+/463777 Reviewed-by: Dmitri Shuralyov <[email protected]> Reviewed-by: Michael Pratt <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> Run-TryBot: Michael Knyszek <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
This change removes misc-compile builders' dependence on buildall.bash and switches to make.bash instead, since they now each build for exactly one platform. This change then also removes SplitMakeRun and any paths derived from that in order to simplify the code. For golang/go#58163. Change-Id: I16704cc553c0f6e2c6c34994999693b6d44adb88 Reviewed-on: https://go-review.googlesource.com/c/build/+/464955 Reviewed-by: Dmitri Shuralyov <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Run-TryBot: Michael Knyszek <[email protected]>
The previous change added a StopAfterMake requirement so that the misc-compile builders would only ever run make.bash. However, this is a fairly big hammer as it skips everything after make.bash. Coming up, we're going to want to runSubrepoTests. However, we can't call into runTests because of golang/go#58297, so we need a special exception for that. This change thus also adds the notion of IsCrossCompileOnly defined by whether the host arch doesn't line up with the target arch, and adds a test to make sure this only applies to the misc-compile builders. This change also removes some hard-coding of the misc-compile prefix in favor of this new IsCrossCompileOnly notion. For golang/go#58163. Change-Id: I40ce91e13b45e8bbbb607aedd302f0ec0fbd608a Reviewed-on: https://go-review.googlesource.com/c/build/+/464956 TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> Run-TryBot: Michael Knyszek <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]>
This change adds experimental post-submit misc-compile builders for subrepos only. For golang/go#58163. Change-Id: I05e78a3aeefb62669afc364ae04c67d358af80c3 Reviewed-on: https://go-review.googlesource.com/c/build/+/464957 TryBot-Result: Gopher Robot <[email protected]> Run-TryBot: Michael Knyszek <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]>
Change https://go.dev/cl/513755 mentions this issue: |
The buildall.bash script was initially added in 2015 (in CL 9438), documented as used in the implementation of the new compile-only builders at the time. That description was updated as the builder implementation changed from "linux-amd64-compilesmoke" to "all-compile" and most recently to "misc-compile", which it still mentions today. The build system stopped using it in CL 464955 and there are no plans to use it again in the future, so update the description so that it's not misleading. Notably, adding additional checks to this script does not mean they will be caught by builders. Updates #31916. Updates #58163. Change-Id: I17558b1c150a3ad95105de14511c51791287991b Reviewed-on: https://go-review.googlesource.com/c/go/+/513755 Reviewed-by: Dmitri Shuralyov <[email protected]> Run-TryBot: Dmitri Shuralyov <[email protected]> Auto-Submit: Dmitri Shuralyov <[email protected]> Run-TryBot: Dmitri Shuralyov <[email protected]> Reviewed-by: Michael Knyszek <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
Various recent changes in the
x/tools
have broken the build for various second-class ports (aix
,plan9
,solaris
) without being detected in TryBot runs.Given that tests can be cross-compiled using
go test -c
(albeit currently a bit awkwardly because of #58162), we should enable themisc-compile
TryBots for thex
repos for all platforms that support internal linking.(The platforms that require external linking do not currently have
misc-compile
builders at all — that's #25963.)The text was updated successfully, but these errors were encountered: