# Copyright 2020 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.

# Following these steps to create/update the CIPD package:
# 1. Checkout origin/master of chromium/src and pull the latest revision.
# 2. Get the latest commit hash.
# 3. Run `gclient sync` to make sure catapult is up to date.
# 4. Run the following command to create CIPD package:
#    $ cipd create --pkg-def cipd.yaml -tag src_version:<latest commit hash>
package: chromium/tools/android/avd
description: One single package for running `tools/android/avd/avd.py`
root: ../../../../
data:
  - file: src/.vpython
  - dir: src/build/android
  - dir: src/tools/android/avd
  - dir: src/third_party/android_sdk/public/cmdline-tools
  - dir: src/third_party/android_sdk/public/platform-tools
  - dir: src/third_party/catapult/common/py_utils/py_utils
  - dir: src/third_party/catapult/dependency_manager/dependency_manager
  - dir: src/third_party/catapult/devil/devil
  - dir: src/third_party/catapult/third_party/zipfile
