From 0a7cb6d8197916e795612b461b9b164f5a021914 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 11 Oct 2019 14:54:07 +0200 Subject: [PATCH] ci(osx): use new location of the `perforce` cask The CI builds are failing for Mac OS X due to a change in the location of the perforce cask. The command outputs the following error: + brew install caskroom/cask/perforce Error: caskroom/cask was moved. Tap homebrew/cask-cask instead. So let's try to call `brew cask install perforce` first (which is what that error message suggests, in a most round-about way). The "caskroom" way was added in 672f51cb (travis-ci: fix Perforce install on macOS, 2017-01-22) and the justification is that the call "brew cask install perforce" can fail due to a checksum mismatch: the recipe simply downloads the official Perforce distro, and whenever that is updated, the recipe needs to be updated, too. CI servers are typically fresh virtual machines, but not always. To accommodate for that, let's try harder if `brew cask install perforce` fails, by specifically pulling the latest `master` of the `homebrew-cask` repository. This will still fail, of course, when `homebrew-cask` falls behind Perforce's release schedule. But once it is updated, we can now simply re-run the failed jobs and they will pick up that update. As for updating `homebrew-cask`: the beginnings of automating this in https://dev.azure.com/gitgitgadget/git/_build?definitionId=11&_a=summary will be finished once the next Perforce upgrade comes around. Signed-off-by: Johannes Schindelin Signed-off-by: Derrick Stolee --- ci/install-dependencies.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh index d64667fcbfef80..eb22c3c4fad60b 100755 --- a/ci/install-dependencies.sh +++ b/ci/install-dependencies.sh @@ -40,6 +40,11 @@ osx-clang|osx-gcc) test -z "$BREW_INSTALL_PACKAGES" || brew install $BREW_INSTALL_PACKAGES brew link --force gettext + brew cask install perforce || { + # Update the definitions and try again + git -C "$(brew --repository)"/Library/Taps/homebrew/homebrew-cask pull && + brew cask install perforce + } || brew install caskroom/cask/perforce case "$jobname" in osx-gcc)