[roll] Roll infra/recipes [android_artifact_downloader] Restructure proto for mutual exclusivity

Previously the proto for this recipe had a flat structure of logically
mutually exclusive options: `bool extract`, `bool extract_subdir`, and
`repeated string include_files` in the case of a set of archived
artifacts; `make_executable` in the case of a file. For good type system
hygiene and to make way for introducing a third mutually exclusive
option for specifying licenses, we reorganize the different types of
artifcact specification under `oneof`.

This will be a minor soft transition. Conversion to the "v2" format is
added to the recipe. Confidence that things are handled properly are
bolstered by the recipe expectations only being effectively strict
additions from the v2 spec formats added to the test data (meaning that
the v1 ones end up handled identically). CAS outputs before and after
were also manually inspected with some `led`-triggering.

Since it was low-hanging, amounted to a few-line delta, and was somewhat
symmetrical with archive.root, we also introduce file.destination for a
file specification (which will be soon needed), giving an explicit
installation path in the CIPD package. This is optional and if left
unset, we fallback to the default installation path of the artifact path
within the build directory.

Original-Bug: 432538327
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/infra/recipes/+/1338684
Original-Revision: eee61adcc3c7b29dc777694519f4d127fc0e7851
GitOrigin-RevId: 412c86cb9029af304378ceab3f99b6736be9bfd8
Change-Id: Iae0360ec7f84eb7f5871e06087195f562801faf7
1 file changed
tree: 548465eb99d3b56f2ad712bbd91a2e5c5f5e0fa4
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. flower
  6. jiri.lock
  7. MILESTONE
  8. minimal
  9. prebuilts
  10. README.md
  11. stem
  12. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.