Reset Xcode before `flutter doctor` to prevent Xcode corruption from causing it to fail.

Also, add check to verify Xcode is not damaged/corrupted and if it is, clear the cache and try to install. On second attempt to re-install, try using a different output path.

This fix is aimed at preventing continuous failures on subsequent builds if the Xcode package becomes corrupted.

Fixes: https://github.com/flutter/flutter/issues/139152
Related bug: https://github.com/flutter/flutter/issues/138238

Change-Id: I0f72974241916e9a66f26291ddce01b4b615121f
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/52702
Reviewed-by: Keyong Han <keyonghan@google.com>
Commit-Queue: Victoria Ashworth <vashworth@google.com>
49 files changed
tree: 4b228217ed1515d54fed79f0d277190f457eadba
  1. infra/
  2. recipe_modules/
  3. recipes/
  4. .gitignore
  5. .style.yapf
  6. AUTHORS
  7. CONTRIBUTING.md
  8. LICENSE
  9. OWNERS
  10. README.md
  11. recipes.py
README.md

Flutter LUCI Recipes

This repository contains Flutter's LUCI recipes. For the LUCI infrastructure config, see flutter/infra. Builds can be found in the Flutter Dashboard.

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.

Contributing

Please follow instructions on Contributing docs to set up your development environment.