Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 17 additions & 4 deletions tools/installpsh-osx.sh
Original file line number Diff line number Diff line change
Expand Up @@ -127,10 +127,23 @@ fi

# Suppress output, it's very noisy on travis-ci
echo "Refreshing Homebrew cache..."
if ! brew update > /dev/null; then
echo "ERROR: Refreshing Homebrew cache failed..." >&2
exit 2
fi
for count in {1..2}; do
# Try the update twice if the first time fails
brew update > /dev/null && break

# If the update fails again after increasing the Git buffer size, exit with error.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

caching the brew cache in travis-ci might help:

cache:
  directories:
    - $HOME/Library/Caches/Homebrew

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Travis! I will add this.

if [[ $count == 2 ]]; then
echo "ERROR: Refreshing Homebrew cache failed..." >&2
exit 2
fi

# The update failed for the first try. An error we see a lot in our CI is "RPC failed; curl 56 SSLRead() return error -36".
# What 'brew update' does is to fetch the newest version of Homebrew from GitHub using git, and the error comes from git.
# A potential solution is to increase the Git buffer size to a larger number, say 150 mb. The default buffer size is 1 mb.
echo "First attempt of update failed. Increase Git buffer size and try again ..."
git config --global http.postBuffer 157286400
sleep 5
done

# Suppress output, it's very noisy on travis-ci
if [[ ! -d $(brew --prefix cask) ]]; then
Expand Down