commit | 6c4da49100d597c2e36051cc87176055bb0999de | [log] [tgz] |
---|---|---|
author | Vadim Shtayura <vadimsh@chromium.org> | Thu Jul 26 11:41:00 2018 -0700 |
committer | CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> | Fri Jul 27 06:44:57 2018 +0000 |
tree | 9fc9781ee914b2c33c219d12957618fe99626168 | |
parent | 6d89a6b8814cced284ba97a2b03e7171ed0cd6e9 [diff] |
[cipd] Try to bootstrap CIPD from scratch if selfupdate fails. When updating the CIPD client to be identified by SHA256 hash, old clients (that have no idea about SHA256) fail during 'selfupdate'. We'll roll our SHA256 support in two stages: 1. Deploy new client that understand SHA256 using its SHA1 name, so self-update from old clients works. 2. Deploy same (or newer) client using its SHA256 name. This would work since the client doing the self-update already understands SHA256 at this point. But we can't guarantee that ALL buildtools deployments will update through stages (1) and (2) sequentially. Some of them may skip (1) and end-up directly in (2), failing on 'selfupdate'. This CL makes sure they can recover from this state by rebootstraping the client from scratch (this works with SHA256 hashes). Similar CL in Chromium's depot_tools: https://chromium-review.googlesource.com/1149454 Change-Id: I6bb6cb9980ad536008260af74ddec90ded51dd22
This repository contains the hashes of a number of prebuilt tools that are used to build Fuchsia-related projects. The actual tools themselves are located in Google Storage.
In most cases, the jiri
tool will download the build tools automatically during its update
step. To download the tools manually, run update.sh
.
NOTE: These instructions are for Googlers only.
The tarballs are uploaded with the “gsutil” program. See https://cloud.google.com/storage/docs/gsutil
There's a link there to download and install the Google Cloud SDK: https://cloud.google.com/sdk/docs/
After installing the SDK you need to initialize/authenticate: https://cloud.google.com/storage/docs/gsutil_install#authenticate
One of the steps will ask you for a cloud project. Choose loas-fuchsia-team.
At this point you can use gsutil to upload/download tarballs, view cloud directory contents, and so on.
Tarballs must have the tool name as the top level directory. E.g.,
bash$ tar tvf qemu.tar.bz2 drwxr-xr-x ... qemu/ drwxr-xr-x ... qemu/libexec/ ...
The uploaded file name is the sha1 hash of the tarball. It could also be a sha1 hash of the tarball contents, avoiding unnecessary spurious differences in uploads.
To compute the latter, one can do something like:
bash$ LC_ALL=POSIX cat $(find qemu/ -type f | sort) | shasum -a1
The sha1 hash is checked into the buildtools repo and supports adding new tarballs or rolling back to a previous one. See the *.sha1 files in buildtools/{mac,linux64}.
There are separate directories for mac and linux tarballs. E.g.,
bash$ ./bin/gsutil ls gs://fuchsia-build/fuchsia/qemu/mac gs://fuchsia-build/fuchsia/qemu/mac/ gs://fuchsia-build/fuchsia/qemu/mac/10d77d7df5b39440148ac3aab1a401ff42337a76 ... bash$ ./bin/gsutil ls gs://fuchsia-build/fuchsia/qemu/linux64 gs://fuchsia-build/fuchsia/qemu/linux64/ gs://fuchsia-build/fuchsia/qemu/linux64/10d77d7df5b39440148ac3aab1a401ff42337a76 ...