Clean up xcode cache only when needed

This CL
1) cleans up only the specific versioned xcode when needed
2) cleans up xcode cache when explicitly asked by `cleanup_cache: true`
3) cleans up xcode cache when polluted

This is a no-op for existing workflows where xcode cache has been installed correctly.

This CL takes effect only when
1) new xcode version is being updated
2) a build is cancelled during xcode installation
which left over an incomplete xcode.

Change-Id: I9269204537c5dad4e1f2fec2f7a51f4d694c0473
Bug: https://github.com/flutter/flutter/issues/117541
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/42900
Reviewed-by: Ricardo Amador <ricardoamador@google.com>
Reviewed-by: Yusuf Mohsinally <mohsinally@google.com>
Commit-Queue: Keyong Han <keyonghan@google.com>
124 files changed
tree: c534dabe25d9e3662b00814bbab054719d8b1b4b
  1. infra/
  2. recipe_modules/
  3. recipes/
  4. .gitignore
  5. .style.yapf
  6. AUTHORS
  7. LICENSE
  8. OWNERS
  9. README.md
  10. recipes.py
README.md

Flutter LUCI Recipes

This repository contains Flutter's LUCI recipes. For the LUCI infrastructure config, see flutter/infra. Actual builds can be seen at ci.chromium.org.

Supported repositories roll their .ci.yaml into flutter/infra, which updates what properties builds have. For example, flutter config specifies various dependencies the different tests require, which are then used by the flutter_deps recipe_module No modifications to flutter/infra are required to work on the recipes.

Configuration

Tricium configurations recipes repo.

Testing locally

Running python recipes.py test train will execute all of the tests in this repository

Troubleshooting

Required binary is not found on PATH: cipd when testing locally

You need to ensure depot_tools is installed. See Depot Tools Installation Tutorial