[
  {
    "cmd": [],
    "name": "Prepare Host Build"
  },
  {
    "cmd": [],
    "name": "Prepare Host Build.Prepare git",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@1@@@"
    ]
  },
  {
    "cmd": [
      "git",
      "config",
      "--get",
      "user.name"
    ],
    "infra_step": true,
    "name": "Prepare Host Build.Prepare git.git config user.name",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@"
    ]
  },
  {
    "cmd": [
      "git",
      "config",
      "--get",
      "user.email"
    ],
    "infra_step": true,
    "name": "Prepare Host Build.Prepare git.git config user.email",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@"
    ]
  },
  {
    "cmd": [
      "git",
      "config",
      "--global",
      "user.name",
      "Crosvm Bot"
    ],
    "infra_step": true,
    "name": "Prepare Host Build.Prepare git.Set git config: user.name",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@"
    ]
  },
  {
    "cmd": [
      "git",
      "config",
      "--global",
      "user.email",
      "crosvm-bot@crosvm-infra.iam.gserviceaccount.com"
    ],
    "infra_step": true,
    "name": "Prepare Host Build.Prepare git.Set git config: user.email",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@"
    ]
  },
  {
    "cmd": [
      "git",
      "config",
      "--global",
      "--replace-all",
      "credential.helper",
      "gcloud.sh"
    ],
    "infra_step": true,
    "name": "Prepare Host Build.Prepare git.Set git config: credential.helper",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@"
    ]
  },
  {
    "cmd": [],
    "name": "Prepare Host Build.Prepare source",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@1@@@"
    ]
  },
  {
    "cmd": [
      "vpython3",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "ensure-directory",
      "--mode",
      "0o777",
      "[CACHE]/builder"
    ],
    "infra_step": true,
    "name": "Prepare Host Build.Prepare source.Ensure builder_cache exists",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@"
    ]
  },
  {
    "cmd": [
      "vpython3",
      "-u",
      "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
      "--spec-path",
      "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'crosvm', 'url': 'https://chromium.googlesource.com/crosvm/crosvm'}]",
      "--revision_mapping_file",
      "{\"got_revision\": \"crosvm\"}",
      "--git-cache-dir",
      "[CACHE]/git",
      "--cleanup-dir",
      "[CLEANUP]/bot_update",
      "--output_json",
      "/path/to/tmp/json",
      "--revision",
      "crosvm@HEAD"
    ],
    "cwd": "[CACHE]/builder",
    "env": {
      "DEPOT_TOOLS_COLLECT_METRICS": "0",
      "GIT_BACKENDINFO": "1",
      "GIT_DAPPER_TRACE": "1",
      "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
      "GIT_HTTP_LOW_SPEED_TIME": "1800",
      "GIT_SSH_COMMAND": "ssh -o SendEnv=GIT_DAPPER_TRACE -o SendEnv=GIT_BACKENDINFO",
      "GIT_TRACE2_EVENT": "[CLEANUP]/trace2-event",
      "GIT_TRACE_CURL": "[CLEANUP]/trace-curl",
      "GIT_TRACE_CURL_NO_DATA": "1",
      "GIT_TRACE_PACKET": "[CLEANUP]/trace-packet"
    },
    "env_suffixes": {
      "DEPOT_TOOLS_UPDATE": [
        "0"
      ],
      "PATH": [
        "RECIPE_REPO[depot_tools]"
      ]
    },
    "infra_step": true,
    "name": "Prepare Host Build.Prepare source.bot_update",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@",
      "@@@STEP_TEXT@Some step text@@@",
      "@@@STEP_LOG_LINE@json.output@{@@@",
      "@@@STEP_LOG_LINE@json.output@  \"did_run\": true,@@@",
      "@@@STEP_LOG_LINE@json.output@  \"fixed_revisions\": {@@@",
      "@@@STEP_LOG_LINE@json.output@    \"crosvm\": \"HEAD\"@@@",
      "@@@STEP_LOG_LINE@json.output@  },@@@",
      "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
      "@@@STEP_LOG_LINE@json.output@    \"crosvm\": {@@@",
      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/crosvm.git\",@@@",
      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2e31dd442a44af9e1e51e96aeca18017ddb9922c\"@@@",
      "@@@STEP_LOG_LINE@json.output@    }@@@",
      "@@@STEP_LOG_LINE@json.output@  },@@@",
      "@@@STEP_LOG_LINE@json.output@  \"patch_root\": null,@@@",
      "@@@STEP_LOG_LINE@json.output@  \"properties\": {@@@",
      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"2e31dd442a44af9e1e51e96aeca18017ddb9922c\",@@@",
      "@@@STEP_LOG_LINE@json.output@    \"got_revision_cp\": \"refs/heads/main@{#119844}\"@@@",
      "@@@STEP_LOG_LINE@json.output@  },@@@",
      "@@@STEP_LOG_LINE@json.output@  \"root\": \"crosvm\",@@@",
      "@@@STEP_LOG_LINE@json.output@  \"source_manifest\": {@@@",
      "@@@STEP_LOG_LINE@json.output@    \"directories\": {@@@",
      "@@@STEP_LOG_LINE@json.output@      \"crosvm\": {@@@",
      "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
      "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/crosvm.git\",@@@",
      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2e31dd442a44af9e1e51e96aeca18017ddb9922c\"@@@",
      "@@@STEP_LOG_LINE@json.output@        }@@@",
      "@@@STEP_LOG_LINE@json.output@      }@@@",
      "@@@STEP_LOG_LINE@json.output@    },@@@",
      "@@@STEP_LOG_LINE@json.output@    \"version\": 0@@@",
      "@@@STEP_LOG_LINE@json.output@  },@@@",
      "@@@STEP_LOG_LINE@json.output@  \"step_text\": \"Some step text\"@@@",
      "@@@STEP_LOG_LINE@json.output@}@@@",
      "@@@STEP_LOG_END@json.output@@@",
      "@@@SET_BUILD_PROPERTY@got_revision@\"2e31dd442a44af9e1e51e96aeca18017ddb9922c\"@@@",
      "@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/main@{#119844}\"@@@"
    ]
  },
  {
    "cmd": [],
    "name": "Prepare Host Build.Prepare source.Sync submodules",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@"
    ]
  },
  {
    "cmd": [
      "git",
      "submodule",
      "update",
      "--force",
      "--init"
    ],
    "cwd": "[CACHE]/builder/crosvm",
    "infra_step": true,
    "name": "Prepare Host Build.Prepare source.Sync submodules.Init / Update submodules",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@3@@@"
    ]
  },
  {
    "cmd": [
      "git",
      "repack",
      "-a"
    ],
    "cwd": "[CACHE]/builder/crosvm",
    "infra_step": true,
    "name": "Prepare Host Build.Prepare source.Repack repository",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@"
    ]
  },
  {
    "cmd": [],
    "name": "Prepare Host Build.Prepare rust",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@1@@@"
    ]
  },
  {
    "cmd": [],
    "name": "Prepare Host Build.Prepare rust.install crosvm/rustup-init",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@"
    ]
  },
  {
    "cmd": [
      "vpython3",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "ensure-directory",
      "--mode",
      "0o777",
      "[START_DIR]/cipd_tool/crosvm/rustup-init/5e1e2bcac305958b27077ca136f35f0abae7cf38c9af678f7d220ed0cb51d4f8"
    ],
    "cwd": "[CACHE]/builder/crosvm",
    "env": {
      "CARGO_HOME": "[CACHE]/builder/cargo_home",
      "CARGO_TARGET_DIR": "[CLEANUP]/cargo_target",
      "RUSTUP_HOME": "[CACHE]/builder/rustup"
    },
    "env_prefixes": {
      "PATH": [
        "[CACHE]/builder/cargo_home/bin",
        "[CACHE]/builder/local_bin"
      ]
    },
    "infra_step": true,
    "name": "Prepare Host Build.Prepare rust.install crosvm/rustup-init.ensure package directory",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@3@@@"
    ]
  },
  {
    "cmd": [
      "cipd",
      "ensure",
      "-root",
      "[START_DIR]/cipd_tool/crosvm/rustup-init/5e1e2bcac305958b27077ca136f35f0abae7cf38c9af678f7d220ed0cb51d4f8",
      "-ensure-file",
      "crosvm/rustup-init/${platform} latest",
      "-max-threads",
      "0",
      "-json-output",
      "/path/to/tmp/json"
    ],
    "cwd": "[CACHE]/builder/crosvm",
    "env": {
      "CARGO_HOME": "[CACHE]/builder/cargo_home",
      "CARGO_TARGET_DIR": "[CLEANUP]/cargo_target",
      "RUSTUP_HOME": "[CACHE]/builder/rustup"
    },
    "env_prefixes": {
      "PATH": [
        "[CACHE]/builder/cargo_home/bin",
        "[CACHE]/builder/local_bin"
      ]
    },
    "infra_step": true,
    "name": "Prepare Host Build.Prepare rust.install crosvm/rustup-init.ensure_installed",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@3@@@",
      "@@@STEP_LOG_LINE@json.output@{@@@",
      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
      "@@@STEP_LOG_LINE@json.output@      {@@@",
      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
      "@@@STEP_LOG_LINE@json.output@        \"package\": \"crosvm/rustup-init/resolved-platform\"@@@",
      "@@@STEP_LOG_LINE@json.output@      }@@@",
      "@@@STEP_LOG_LINE@json.output@    ]@@@",
      "@@@STEP_LOG_LINE@json.output@  }@@@",
      "@@@STEP_LOG_LINE@json.output@}@@@",
      "@@@STEP_LOG_END@json.output@@@"
    ]
  },
  {
    "cmd": [
      "[START_DIR]/cipd_tool/crosvm/rustup-init/5e1e2bcac305958b27077ca136f35f0abae7cf38c9af678f7d220ed0cb51d4f8/rustup-init",
      "-y",
      "--default-toolchain",
      "none"
    ],
    "cwd": "[CACHE]/builder/crosvm",
    "env": {
      "CARGO_HOME": "[CACHE]/builder/cargo_home",
      "CARGO_TARGET_DIR": "[CLEANUP]/cargo_target",
      "RUSTUP_HOME": "[CACHE]/builder/rustup"
    },
    "env_prefixes": {
      "PATH": [
        "[CACHE]/builder/cargo_home/bin",
        "[CACHE]/builder/local_bin"
      ]
    },
    "infra_step": true,
    "name": "Prepare Host Build.Prepare rust.Install rustup",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@"
    ]
  },
  {
    "cmd": [
      "rustc",
      "--version"
    ],
    "cwd": "[CACHE]/builder/crosvm",
    "env": {
      "CARGO_HOME": "[CACHE]/builder/cargo_home",
      "CARGO_TARGET_DIR": "[CLEANUP]/cargo_target",
      "RUSTUP_HOME": "[CACHE]/builder/rustup"
    },
    "env_prefixes": {
      "PATH": [
        "[CACHE]/builder/cargo_home/bin",
        "[CACHE]/builder/local_bin"
      ]
    },
    "infra_step": true,
    "name": "Prepare Host Build.Prepare rust.Ensure toolchain is installed",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@"
    ]
  },
  {
    "cmd": [],
    "name": "Prepare Host Build.Prepare host dependencies",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@1@@@"
    ]
  },
  {
    "cmd": [
      "vpython3",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "ensure-directory",
      "--mode",
      "0o777",
      "[CACHE]/builder/local_bin"
    ],
    "cwd": "[CACHE]/builder/crosvm",
    "env": {
      "CARGO_HOME": "[CACHE]/builder/cargo_home",
      "CARGO_TARGET_DIR": "[CLEANUP]/cargo_target",
      "RUSTUP_HOME": "[CACHE]/builder/rustup"
    },
    "env_prefixes": {
      "PATH": [
        "[CACHE]/builder/cargo_home/bin",
        "[CACHE]/builder/local_bin"
      ]
    },
    "infra_step": true,
    "name": "Prepare Host Build.Prepare host dependencies.Ensure local_bin exists",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@"
    ]
  },
  {
    "cmd": [
      "cipd",
      "ensure",
      "-root",
      "[CACHE]/builder/local_bin",
      "-ensure-file",
      "crosvm/protoc/${platform} latest\ncrosvm/cargo-nextest/${platform} latest",
      "-max-threads",
      "0",
      "-json-output",
      "/path/to/tmp/json"
    ],
    "cwd": "[CACHE]/builder/crosvm",
    "env": {
      "CARGO_HOME": "[CACHE]/builder/cargo_home",
      "CARGO_TARGET_DIR": "[CLEANUP]/cargo_target",
      "RUSTUP_HOME": "[CACHE]/builder/rustup"
    },
    "env_prefixes": {
      "PATH": [
        "[CACHE]/builder/cargo_home/bin",
        "[CACHE]/builder/local_bin"
      ]
    },
    "infra_step": true,
    "name": "Prepare Host Build.Prepare host dependencies.ensure_installed",
    "~followup_annotations": [
      "@@@STEP_NEST_LEVEL@2@@@",
      "@@@STEP_LOG_LINE@json.output@{@@@",
      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
      "@@@STEP_LOG_LINE@json.output@      {@@@",
      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
      "@@@STEP_LOG_LINE@json.output@        \"package\": \"crosvm/cargo-nextest/resolved-platform\"@@@",
      "@@@STEP_LOG_LINE@json.output@      },@@@",
      "@@@STEP_LOG_LINE@json.output@      {@@@",
      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
      "@@@STEP_LOG_LINE@json.output@        \"package\": \"crosvm/protoc/resolved-platform\"@@@",
      "@@@STEP_LOG_LINE@json.output@      }@@@",
      "@@@STEP_LOG_LINE@json.output@    ]@@@",
      "@@@STEP_LOG_LINE@json.output@  }@@@",
      "@@@STEP_LOG_LINE@json.output@}@@@",
      "@@@STEP_LOG_END@json.output@@@"
    ]
  },
  {
    "cmd": [
      "cargo",
      "build"
    ],
    "cwd": "[CACHE]/builder/crosvm",
    "env": {
      "CARGO_HOME": "[CACHE]/builder/cargo_home",
      "CARGO_TARGET_DIR": "[CLEANUP]/cargo_target",
      "RUSTUP_HOME": "[CACHE]/builder/rustup"
    },
    "env_prefixes": {
      "PATH": [
        "[CACHE]/builder/cargo_home/bin",
        "[CACHE]/builder/local_bin"
      ]
    },
    "name": "Build"
  },
  {
    "name": "$result"
  }
]