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/dashboard: add misc-compile-darwinarm64 trybot #42341

Closed
dmitshur opened this issue Nov 2, 2020 · 9 comments
Closed

x/build/dashboard: add misc-compile-darwinarm64 trybot #42341

dmitshur opened this issue Nov 2, 2020 · 9 comments
Labels
arch-arm64 Builders x/build issues (builders, bots, dashboards) FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done. new-builder OS-Darwin
Milestone

Comments

@dmitshur
Copy link
Contributor

dmitshur commented Nov 2, 2020

@cherrymui has notified me that the darwin/arm64 port now supports internal linking, meaning we can cross-compile for darwin/arm64 without needing a C compiler.

Let's add a misc-compile trybot for it, since it's possible now. As all misc-compiler trybots, it will run buildall.bash to cross-compile & vet std+cmd packages, but not run any tests. It should first be added as a normal post-submit builder with a non-zero KnownIssue (similar to CL 257617) before being graduated to a proper trybot.

This helps with #39782 (but doesn't replace it, since a misc-compile builder doesn't run any tests).

@cherrymui Starting with what Go commit do you expect it to work?

CC @golang/release.

@dmitshur dmitshur added OS-Darwin Builders x/build issues (builders, bots, dashboards) NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. new-builder arch-arm64 labels Nov 2, 2020
@dmitshur dmitshur added this to the Unreleased milestone Nov 2, 2020
@dmitshur dmitshur self-assigned this Nov 2, 2020
@dmitshur dmitshur added NeedsFix The path to resolution is known, but the work has not been done. and removed NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Nov 2, 2020
@gopherbot
Copy link

Change https://golang.org/cl/267105 mentions this issue: dashboard: create misc-compile-darwinarm64 builder

@cherrymui
Copy link
Member

I think it should start to work after CL https://go-review.googlesource.com/c/go/+/265121 , a.k.a. b85c2dd.

@dmitshur
Copy link
Contributor Author

dmitshur commented Nov 2, 2020

Great, I've made that commit required in CL 267105.

gopherbot pushed a commit to golang/build that referenced this issue Nov 2, 2020
Create the builder as a post-submit builder with a non-zero KnownIssue
value first. Once we know it works well, we'll have the confidence to
be able to safely promote it to a normal TryBot, without the risk of
causing disruption for contributors.

It's different from misc-compile-darwin since it needs to run on recent
Go 1.16 commits only.

For golang/go#42341.

Change-Id: I67170988d7323cb73439755a3961532c668040e7
Reviewed-on: https://go-review.googlesource.com/c/build/+/267105
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
@gopherbot
Copy link

Change https://golang.org/cl/267123 mentions this issue: dashboard: promote misc-compile-darwinarm64 builder to a TryBot

@dmitshur
Copy link
Contributor Author

dmitshur commented Nov 4, 2020

There's a bit more to do before this TryBot becomes alive; reopening.

I think what's left is to resolve #42377, then it should work.

@gopherbot
Copy link

Change https://golang.org/cl/267677 mentions this issue: maintner/maintnerd/maintapi: adjust heuristic for tip version

@gopherbot
Copy link

Change https://golang.org/cl/268057 mentions this issue: bufio: add invalid code for macOS arm64 only

@dmitshur
Copy link
Contributor Author

dmitshur commented Nov 6, 2020

It's working as expected so far. Here's a TryBot run from a recent CL:

image

Build Log
  success: true

Build log:
misc-compile-darwinarm64 at 9b04918db6f33a5a6c63fb3f04a178883fd4851e

:: Running /workdir/go/src/buildall.bash with args ["/workdir/go/src/buildall.bash" "^darwin-arm64$"] and env ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" "HOSTNAME=buildlet-linux-jessie-rn9bc54d5" "DEBIAN_FRONTEND=noninteractive" "HOME=/root" "USER=root" "GO_STAGE0_NET_DELAY=100ms" "GO_STAGE0_DL_DELAY=400ms" "WORKDIR=/workdir" "GOROOT_BOOTSTRAP=/workdir/go1.4" "GO_BUILDER_NAME=misc-compile-darwinarm64" "GOROOT_BOOTSTRAP=/go1.4" "GO_DISABLE_OUTBOUND_NETWORK=1" "TMPDIR=/workdir/tmp" "GOCACHE=/workdir/gocache"] in dir /workdir/go/src

Building Go cmd/dist using /go1.4. (go1.4 linux/amd64)
Building Go toolchain1 using /go1.4.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for linux/amd64.
---
Installed Go for linux/amd64 in /workdir/go
Installed commands in /workdir/go/bin

### Building darwin-arm64

In contrast with CL 268057 which intentionally adds invalid code for macOS arm64 only:

image

Build Log
  success: false

Build log:
misc-compile-darwinarm64 at 7641155bd44b5facb893b63e2e49042b96e758fc

:: Running /workdir/go/src/buildall.bash with args ["/workdir/go/src/buildall.bash" "^darwin-arm64$"] and env ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" "HOSTNAME=buildlet-linux-jessie-rn520e6d2" "DEBIAN_FRONTEND=noninteractive" "HOME=/root" "USER=root" "GO_STAGE0_NET_DELAY=100ms" "GO_STAGE0_DL_DELAY=200ms" "WORKDIR=/workdir" "GOROOT_BOOTSTRAP=/workdir/go1.4" "GO_BUILDER_NAME=misc-compile-darwinarm64" "GOROOT_BOOTSTRAP=/go1.4" "GO_DISABLE_OUTBOUND_NETWORK=1" "TMPDIR=/workdir/tmp" "GOCACHE=/workdir/gocache"] in dir /workdir/go/src

Building Go cmd/dist using /go1.4. (go1.4 linux/amd64)
Building Go toolchain1 using /go1.4.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for linux/amd64.
---
Installed Go for linux/amd64 in /workdir/go
Installed commands in /workdir/go/bin

### Building darwin-arm64
# bufio
bufio/bad_darwin_arm64.go:5:1: syntax error: non-declaration statement outside function body

Build(s) failed.


Error: all script failed: exit status 1

gopherbot pushed a commit to golang/build that referenced this issue Nov 6, 2020
The vast majority of the time, when Go 1.X (or Go 1.X.Y) is the latest
supported Go release, non-release branches are used for developing
the next Go 1.(X+1) version and not the same Go 1.X version.

Adjust the imperfect heuristic used to determine the Go version from
the branch name by taking this into account.

Make the output from the TestFindTryWork test easier to read,
as it's expensive to add test coverage for this change elsewhere.

For golang/go#42341.
Fixes golang/go#42377.
Updates golang/go#42376.

Change-Id: I70b21662f2a4c853d14a0928f8bd7361fc6aafd6
Reviewed-on: https://go-review.googlesource.com/c/build/+/267677
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
Trust: Dmitri Shuralyov <dmitshur@golang.org>
@dmitshur
Copy link
Contributor Author

dmitshur commented Nov 6, 2020

This is live as of CL 267123 and CL 267677, so closing. If there are issues, please let me know.

Thank you for your work to make this possible @cherrymui!

@dmitshur dmitshur closed this as completed Nov 6, 2020
@golang golang locked and limited conversation to collaborators Nov 6, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-arm64 Builders x/build issues (builders, bots, dashboards) FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done. new-builder OS-Darwin
Projects
None yet
Development

No branches or pull requests

3 participants