# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Pin resolved versions in the repo, to reduce trust in the CIPD backend.
#
# Most of these tools are generated via builders at
# https://ci.chromium.org/p/infra/g/infra/console
#
# For these, the git revision is the one of
# https://chromium.googlesource.com/infra/infra.git.
#
# For goma client, generated via builders at
# https://ci.chromium.org/p/infra-internal/g/goma-client/console
# the git revision is the one of
# https://chromium.googlesource.com/infra/goma/client.git
#
# To regenerate them (after modifying this file):
#   cipd ensure-file-resolve -ensure-file cipd_manifest.txt
$ResolvedVersions cipd_manifest.versions

# Fully supported platforms.
$VerifiedPlatform linux-amd64 mac-amd64 windows-amd64 windows-386

# Platform with best-effort support: we have some binaries cross-compiled for
# them, but we do not test they work. They also may not have all necessary
# vpython packages.
$VerifiedPlatform linux-386 linux-ppc64 linux-ppc64le linux-s390x
$VerifiedPlatform linux-arm64 linux-armv6l
$VerifiedPlatform linux-mips64 linux-mips64le linux-mipsle

# vpython.
infra/tools/luci/vpython/${platform} git_revision:65447aeba0bc6228a4149e56fe718eac71a9895b

# LUCI editor
infra/tools/luci/led/${platform} git_revision:8a2a1c24b738f099734cfc4dbd2a242dcad2b3ad

# LUCI config generator
infra/tools/luci/lucicfg/${platform} git_revision:97cc28c4258b12af0921f4b0b97ba3f4f74ab7d0

# Mac toolchain installer
infra/tools/mac_toolchain/${os=mac}-${arch} git_revision:9a1adc55bf4a1173784da3ba2f8cb06421606748

# LUCI rpc command line tool
infra/tools/prpc/${platform} git_revision:dace3c38ddbc95ee87f77f6fac1d30b8333283e4

# LUCI authentication command line tool
infra/tools/luci-auth/${platform} git_revision:510e7187aa80b1b0d490f069437d119c28d1ea48

# LUCI Buildbucket CLI
infra/tools/bb/${platform} git_revision:165c851a5838dd48e66240a0de3da872b4b31d01

# LUCI ResultDB CLI
infra/tools/rdb/${platform} git_revision:cb1b8791d9e431b701684e29b04e778bf7db5a64

# CHROMEOS Buildjobs CLI
chromiumos/infra/crosjobs/${platform=linux-amd64} git_revision:ed616d595eb7241d39d34907050d2949121d6ae8

# goma client
infra/goma/client/${os}-amd64 git_revision:1dedb59e6102d227b85cf144c786eca51bbfd5b6

# dirmd, a tool to work with DIR_METADATA files
infra/tools/dirmd/${platform} git_revision:1d24fedc0739eae2d2efec0ff5cf54c20c44171e
