tree f188bc8faa1f36581bf8c6ee6d27f97ff5159bb7
parent e8f284483d8e84fc2621cb36bea8db3ca0fd3a21
author recipe-roller <recipe-deps-roller@pigweed.google.com.iam.gserviceaccount.com> 1642701703 +0000
committer CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> 1642704992 +0000

Roll recipe dependencies (trivial).

This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (fuchsia) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8824496331100698273

fuchsia:
https://fuchsia.googlesource.com/infra/recipes/+log/11ac9bcfa0820e24eec636ea291f095d64f12ef3~..3bf5ae70f74926d02e0b36f668d2e20f67e67974
  11ac9bc (fangism@google.com)
      [fint][metrics] Add Ninja action metrics.
  34936b8 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest
  c1b63cf (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest
  7e76b8d (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest
  f1c7e6a (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest
  c56f2d6 (maruel@google.com)
      [testing] stop swallowing resultdb failures
  ff19aff (fangism@google.com)
      [metrics] Add metrics for the ninja build.
  bc2904c (ihuh@google.com)
      [coverage] Don't output malformed tests in summary if too many.
  ec4ebb1 (olivernewman@google.com)
      [testing] Handle skipped and timed out tests
  c4f0bd0 (yupingz@google.com)
      Remove superproject/integration dependencies
  98827e1 (olivernewman@google.com)
      [build] Simplify orchestration_inputs uploading
  f3af8d8 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest
  ce8b367 (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest
  2d13a04 (atyfto@google.com)
      [sdk] Move merge_archives logic into separate function
  205cfe3 (catduncan@google.com)
      [cipd_with_dependencies_roller] Convert to proto properties
  e753f7d (atyfto@google.com)
      [sdk] Use api.futures to merge archives concurrently
  70e48f3 (catduncan@google.com)
      [aemu] Convert to proto properties
  304eb9c (olivernewman@google.com)
      [sdk] Set swarming parent_run_id on SDK subbuilds
  a0369de (global-integration-roller@fuchsia-infra.iam.gserviceaccount.com)
      [roll] Update tools to latest
  c01718c (olivernewman@google.com)
      [testing] Correctly catch resultdb infra failures
  3bf5ae7 (phosek@google.com)
      [clang_toolchain] Don't set the model path

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

R=mohrr@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I60637e7164fe04b2ee75c199bb2fca7672ca0e00
Reviewed-on: https://pigweed-review.googlesource.com/c/infra/recipes/+/79920
Bot-Commit: Recipe Deps Roller <recipe-deps-roller@pigweed.google.com.iam.gserviceaccount.com>
Commit-Queue: Recipe Deps Roller <recipe-deps-roller@pigweed.google.com.iam.gserviceaccount.com>
Pigweed-Auto-Submit: Rob Mohr <mohrr@google.com>
