[roll] Roll infra/recipes Add a generic recipe for testing SDK-based OOT projects

This recipe will initially be used only by workstation.git and
smart-integration.git, but is intended to generalize to out-of-tree
drivers, other out-of-tree product repositories, and other projects with
similar requirements.

The recipe is primarily aimed at projects that use the Fuchsia SDK, but
it does not require that the project under test rely on the SDK or any
other specific dependency.

The builders for workstation.git and smart-integration.git are currently
using `run_script.py`, which can remain quite generic now that the
projects' specific requirements are addressed by this new recipe. In
particular, this recipe understands the high-level purpose of each step
(e.g. build vs. upload), giving us room to add infrastructure logic such
as sandboxing around specific steps. This also helps enforce the
requirements described in http://go/fuchsia-ci-guidelines-rfc by
ensuring that the infrastructure only knows about a few very high-level
scripts in the project under test, and that the project has a "clear
separation between checkout, build, and test."

Rather than requiring that each project's scripts conform to a certain
command-line interface (e.g. the build script must have a --build-dir
flag) we provide variables that each project can use in its builder
configuration; for example, the recipe will replace "{build_dir}" with
the actual path to the build directory. This helps minimize the
interface between the recipe and the project under test, in favor of a
larger interface between the recipe and the builder configurations (both
of which are currently owned by the engprod team). This approach has
worked well so far in the run_script.py recipe.

Original-Bug: 94065
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/infra/recipes/+/647983
Original-Revision: 20071ac7c8a9709d4d3a5273af53057242409816
GitOrigin-RevId: 64dd6311ea961e8d575069e1758c0f214207998a
Change-Id: I99f48d8516cebc55022fc5249dec3961ecf92a59
1 file changed
tree: daec299d6388acf014ba37a3d2be358d392100d7
  1. infra/
  2. third_party/
  3. cts
  4. firmware
  5. flower
  6. jiri.lock
  7. minimal
  8. prebuilts
  9. README.md
  10. stem
  11. test_durations
  12. toolchain
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 via the IRC channel #fuchsia on Freenode.

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.