scripts: udpate_deps retry on clone or fetch failure
authorBob Ellison <bob@lunarg.com>
Mon, 13 Jul 2020 17:19:54 +0000 (11:19 -0600)
committerBob Ellison <45772930+lunarpapillo@users.noreply.github.com>
Mon, 13 Jul 2020 19:20:21 +0000 (13:20 -0600)
commit521eaacef67a0389e32495355c8253d7b185bc11
tree755b2049f997bfd337a7e2b2668461a9fa451e87
parent68bfbc2194972f4b4ccd6073758bfa5ece522f67
scripts: udpate_deps retry on clone or fetch failure

Duplicate change from commit b636386a7824eb4e6a0d99962e1491ac68d3a295
on KhronosGroup/Vulkan-ValidationLayers, to keep update_deps.py
in sync across all repos.  Original commit message is:

We see spurious failures to connect to github when trying to
run update_deps.py (up to 7% of runs, depending on the machine).
This is an annoyance when running by hand, but a headache and
a serious resource waste when running in automation (as a single
broken "git clone" or "git fetch" can cause the whole run to fail).

These changes allow update_deps.py to automatically retry
"git fetch" and "git clone" operations on failure.

These changes will be duplicated in follow-on PRs to the
other repositories that include "update_deps.py", to keep
them all in sync. These are KhronosGroup/Vulkan-Tools,
KhronosGroup/Vulkan-Loader, LunarG/VulkanSamples, and
LunarG/VulkanTools.

I'm also including a "technical debt" update here, because
VulkanTools/scripts/update_deps.py had diverged from the other
"update_deps.py" versions, to add a way to avoid building a
dependency if that dependency is not supported on the current
build platform. This should be harmless to the other
repositories (though potentially useful in the future). The
original commit was aaabc9df034f1fdf9a976a6293d0983b079143ee
with description:

    In update deps, this will check that a dependency is actually supported
    on the platform being built. This is needed because the loader is a
    dependency on all platforms other than Windows.
scripts/update_deps.py