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

# Syntax: https://godoc.org/go.chromium.org/luci/cipd/client/cipd/ensure

$VerifiedPlatform linux-amd64
$VerifiedPlatform mac-amd64

$ParanoidMode CheckPresence

@Subdir tools

# Black formatter
# Keep in sync with https://fuchsia.googlesource.com/infra/recipes/+/HEAD/shac.ensure
fuchsia/third_party/black/${platform} version:2@24.4.0.1

# shac static checks tool. Pin to latest as it's unstable.
fuchsia/shac/${platform} latest

#
# LUCI tools
# To update, see https://ci.chromium.org/p/infra/g/infra/console for luci-go
# rolls.
#

# Buildbucket CLI
infra/tools/bb/${platform} git_revision:5da337f40aeac8d9f65b89e335b519291356d3d5

# Cas client
infra/tools/luci/cas/${platform} git_revision:5da337f40aeac8d9f65b89e335b519291356d3d5

# Gerrit CLI
infra/tools/luci/gerrit/${platform} git_revision:5da337f40aeac8d9f65b89e335b519291356d3d5

# Gitiles CLI
infra/tools/luci/gitiles/${platform} git_revision:5da337f40aeac8d9f65b89e335b519291356d3d5

# LUCI editor
infra/tools/luci/led/${platform} git_revision:5da337f40aeac8d9f65b89e335b519291356d3d5

# LogDog CLI client
infra/tools/luci/logdog/logdog/${platform} git_revision:5da337f40aeac8d9f65b89e335b519291356d3d5

# LUCI auth tool
infra/tools/luci-auth/${platform} git_revision:5da337f40aeac8d9f65b89e335b519291356d3d5

# Lucicfg tool
# Keep in sync with //integration/infra/config/cipd.ensure, which is the source
# of truth for the lucicfg version used by the infra configs.
infra/tools/luci/lucicfg/${platform} git_revision:5da337f40aeac8d9f65b89e335b519291356d3d5

# swarming
infra/tools/luci/swarming/${platform} git_revision:5da337f40aeac8d9f65b89e335b519291356d3d5

# preview_email
infra/tools/preview_email/${platform} git_revision:5da337f40aeac8d9f65b89e335b519291356d3d5

# vpython
infra/tools/luci/vpython/${platform} git_revision:5da337f40aeac8d9f65b89e335b519291356d3d5
