Commit f055cc56 authored by Arthur Eubanks's avatar Arthur Eubanks Committed by Commit Bot

Point to script that automates more of the roll

Change-Id: Id2f645e869506c8a5870131cdb3b9921e37bace2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2238889Reviewed-by: default avatarNico Weber <thakis@chromium.org>
Commit-Queue: Arthur Eubanks <aeubanks@google.com>
Cr-Commit-Position: refs/heads/master@{#776806}
parent d445f02b
......@@ -9,48 +9,19 @@ An archive of all packages built so far is at https://is.gd/chromeclang
1. Check that https://ci.chromium.org/p/chromium/g/chromium.clang/console
looks reasonably green.
1. Sync your Chromium tree to the latest revision to pick up any plugin
changes
1. Run `python tools/clang/scripts/upload_revision.py NNNN`
with the target LLVM SVN revision number. This creates a roll CL on a new
branch, uploads it and starts tryjobs that run upstream tests and build
the compiler binaries into a staging bucket on Google Cloud Storage (GCS).
1. If the clang upload try bots succeed, copy the binaries from the staging
bucket to the production one. For example:
```shell
$ export rev=n123456-abcd1234-1
$ for x in Linux_x64 Mac Win ; do \
gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/clang-$rev.tgz \
gs://chromium-browser-clang/$x/clang-$rev.tgz ; \
gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/clang-$rev-buildlog.txt \
gs://chromium-browser-clang/$x/clang-$rev-buildlog.txt ; \
gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/clang-tidy-$rev.tgz \
gs://chromium-browser-clang/$x/clang-tidy-$rev.tgz ; \
gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/llvmobjdump-$rev.tgz \
gs://chromium-browser-clang/$x/llvmobjdump-$rev.tgz ; \
gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/translation_unit-$rev.tgz \
gs://chromium-browser-clang/$x/translation_unit-$rev.tgz ; \
gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/llvm-code-coverage-$rev.tgz \
gs://chromium-browser-clang/$x/llvm-code-coverage-$rev.tgz ; \
gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/libclang-$rev.tgz \
gs://chromium-browser-clang/$x/libclang-$rev.tgz ; \
done && gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/Mac/lld-$rev.tgz \
gs://chromium-browser-clang/Mac/lld-$rev.tgz
```
**Note** that writing to this bucket requires special permissions. File a
bug at g.co/bugatrooper if you don't have these already (e.g.,
https://crbug.com/1034081).
1. Run the goma package update script to push these packages to goma. If you do
not have the necessary credentials to do the upload, ask clang@chromium.org
to find someone who does
changes.
1. Run go/chrome-push-clang-to-goma. This takes a recent dry run CL to update
clang, and if the trybots were successful it will copy the binaries from
the staging bucket to the production one. Writing to this bucket requires
special permissions. File a bug at g.co/bugatrooper if you don't have these
already (e.g., https://crbug.com/1034081). Then it will push the packages
to goma. If you do not have the necessary credentials to do the upload, ask
clang@chromium.org to find someone who does.
1. Run an exhaustive set of try jobs to test the new compiler. The CL
description created by upload_revision.py includes `Cq-Include-Trybots:`
lines for all needed bots, so it's sufficient to just run `git cl try`
(or hit "CQ DRY RUN" on gerrit).
1. Commit roll CL from the first step
description created previously by upload_revision.py includes
`Cq-Include-Trybots:` lines for all needed bots, so it's sufficient to just
run `git cl try` (or hit "CQ DRY RUN" on gerrit).
1. Commit the roll CL from the previous step.
1. The bots will now pull the prebuilt binary, and goma will have a matching
binary, too.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment