New issue
Advanced search Search tips

Issue 601495 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature



Sign in to add a comment

Roll Clang (almost) automatically

Project Member Reported by h...@chromium.org, Apr 7 2016

Issue description

With krasin's work in place, we have bots that can build and upload Clang packages.

Here's a pie-in-the-sky vision of what rolling Clang could be like:

- We'd have some kind of script/service/dashboard that monitors the Clang ToT bots and keeps track of the latest best Clang revision, as well as current breakages

- Some number of times per day (as often as possible given cycle time), krasin's packaging bots kicks off builds at the revision decided above, and uploads packages to some staging area

- When we want to roll, we push a button to ship the latest good packages to goma and commit.
 
The ship to goma bit is the tricky part, right? Both implementation and security wise.

Comment 2 by h...@chromium.org, Apr 7 2016

I wouldn't want to automate that though.

I think if we can get everything else automatic, but pushing to goma requires running a script manually, that's fine.
Project Member

Comment 3 by sheriffbot@chromium.org, Apr 10 2017

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been available for more than 365 days, and should be re-evaluated. Please re-triage this issue.
The Hotlist-Recharge-Cold label is applied for tracking purposes, and should not be removed after re-triaging the issue.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 4 by h...@chromium.org, Apr 10 2017

Owner: h...@chromium.org
Status: Assigned (was: Untriaged)

Comment 5 by h...@chromium.org, Oct 3 2017

Cc: r...@chromium.org
This came up again today (in the context of Bug 464945, because it would also be useful for bisection).

rnk pointed out we could split the ToT bots into separate clang builders and chromium builders.

The clang builders (we'd need one bot for linux/mac/win) would do full clang package builds, all at the same revisions somehow, and upload them to a staging bucket.

The chromium builders would pull clang packages from that bucket and build and test as usual.

When we're ready to roll, we just grab the already built package, push it to goma etc.

The pre-built packages would also be useful for bisection.


Some tricky things:

- Getting the clang builders fast enough, especially on Windows. We could have more than one slave for each builder though.
- Getting the builders to all build the same revisions. Not sure how to do that.
- Communicating what packages are available to the chromium builders. I guess they can just use the latest from the bucket.
Now that we have the staging bucket, the builders could just run package.py all the time (which runs test, does bootstrap builds, and uploads to the staging bucket).

When we want to roll, we could use the trybots for now to make sure that clang exists on the staging bucket on all platforms at a given revision (we could pick e.g. a revision that already exists on Windows, say). That's at least a bit more automated than what we currently have, and a step towards an even more automated future.

Comment 7 by h...@chromium.org, Oct 9 2017

Running package.py takes a lot longer than what we're doing now though since it does a bootstrap build, especially on Windows. I'd like to not make the ToT bot cycle times longer, so having separate bots for the clang builds would be good I think.
On the other hand, it tests more and it'd prevent situations (like right now) where the tot bots are happy yet packaging fails...

Comment 9 by h...@chromium.org, Oct 9 2017

Sure, I want the continuous packaging, just ideally on separate bots.

Sign in to add a comment