From d887a403ff45d9023cb11daabd31b852ca6c2bdb Mon Sep 17 00:00:00 2001
From: Kevin O'Connor <kevin@koconnor.net>
Date: Mon, 18 Jun 2018 13:04:17 -0400
Subject: [PATCH] test: Try to cache gcc arm download during travis-ci builds

The gcc arm download sometimes fails - try to cache it within the
travis-ci system to prevent that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
---
 .travis.yml               |  4 ++++
 scripts/travis-install.sh | 12 ++++++++++--
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index ba0dec676..76765d98d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,6 +8,10 @@ addons:
             - avr-libc
             - wget
 
+cache:
+  directories:
+  - downloads
+
 install: ./scripts/travis-install.sh
 
 script: ./scripts/travis-build.sh
diff --git a/scripts/travis-install.sh b/scripts/travis-install.sh
index 759a8c019..ce1f7f9a1 100755
--- a/scripts/travis-install.sh
+++ b/scripts/travis-install.sh
@@ -5,6 +5,8 @@
 # Stop script early on any error; check variables; be verbose
 set -eux
 
+DOWNLOAD_DIR=${PWD}/downloads
+
 
 ######################################################################
 # Install embedded arm gcc
@@ -15,13 +17,19 @@ GCC_ARM_URL="https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2017q4/g
 GCC_ARM_SHA="96a029e2ae130a1210eaa69e309ea40463028eab18ba19c1086e4c2dafe69a6a  gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2"
 GCC_ARM_FILE="$(basename ${GCC_ARM_URL})"
 
-wget "$GCC_ARM_URL"
+mkdir -p ${DOWNLOAD_DIR}
+cd ${DOWNLOAD_DIR}
+
+if [ ! -f ${GCC_ARM_FILE} ]; then
+    wget "$GCC_ARM_URL"
+fi
 FOUND_SHA=`sha256sum "$GCC_ARM_FILE"`
 if [ "$FOUND_SHA" != "$GCC_ARM_SHA" ]; then
     echo "ERROR: Mismatch on gcc arm sha256"
     exit -1
 fi
-tar xf "$GCC_ARM_FILE"
+cd ..
+tar xf "${DOWNLOAD_DIR}/${GCC_ARM_FILE}"
 
 
 ######################################################################