From ee0e3253b51dbbaa1f07b740acf6cd36543a0962 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Sat, 25 May 2013 13:55:16 +0100 Subject: [PATCH] Cache main sdk/ndk downloads --- .../cookbooks/android-ndk/recipes/default.rb | 3 +- .../cookbooks/android-sdk/recipes/default.rb | 4 +-- makebuildserver.py | 30 +++++++++++++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/buildserver/cookbooks/android-ndk/recipes/default.rb b/buildserver/cookbooks/android-ndk/recipes/default.rb index 8fdb65a7..42f1de1d 100644 --- a/buildserver/cookbooks/android-ndk/recipes/default.rb +++ b/buildserver/cookbooks/android-ndk/recipes/default.rb @@ -7,8 +7,7 @@ script "setup-android-ndk" do user node[:settings][:user] cwd "/tmp" code " - wget http://dl.google.com/android/ndk/android-ndk-r8e-linux-x86.tar.bz2 - tar jxvf android-ndk-r8e-linux-x86.tar.bz2 + tar jxvf /vagrant/cache/android-ndk-r8e-linux-x64.tar.bz2 mv android-ndk-r8e #{ndk_loc} " not_if do diff --git a/buildserver/cookbooks/android-sdk/recipes/default.rb b/buildserver/cookbooks/android-sdk/recipes/default.rb index 735ce6f2..a89f2b1f 100644 --- a/buildserver/cookbooks/android-sdk/recipes/default.rb +++ b/buildserver/cookbooks/android-sdk/recipes/default.rb @@ -13,10 +13,8 @@ script "setup-android-sdk" do user user cwd "/tmp" code " - wget http://dl.google.com/android/android-sdk_r21.0.1-linux.tgz - tar zxvf android-sdk_r21.0.1-linux.tgz + tar zxvf /vagrant/cache/android-sdk_r21.0.1-linux.tgz mv android-sdk-linux #{sdk_loc} - rm android-sdk_r21.0.1-linux.tgz #{sdk_loc}/tools/android update sdk --no-ui -t platform-tool #{sdk_loc}/tools/android update sdk --no-ui -t tool " diff --git a/makebuildserver.py b/makebuildserver.py index 09ef8ef4..cfaa39eb 100755 --- a/makebuildserver.py +++ b/makebuildserver.py @@ -21,6 +21,36 @@ if not os.path.exists('makebuildserver.py') or not os.path.exists(serverdir): if os.path.exists(boxfile): os.remove(boxfile) + +# Update cached files. +cachedir = os.path.join('buildserver', 'cache') +if not os.path.exists(cachedir): + os.mkdir(cachedir) +cachefiles = [ + ('android-sdk_r21.0.1-linux.tgz', + 'http://dl.google.com/android/android-sdk_r21.0.1-linux.tgz', + 'cookbooks/recipes/android-sdk/default.rb'), + ('android-ndk-r8e-linux-x64.tar.bz2', + 'http://dl.google.com/android/ndk/android-ndk-r8e-linux-x64.tar.bz2', + 'cookbooks/recipes/android-ndk/default.rb') + ] +wanted = [] +for f, src, check in cachefiles: + if subprocess.call('grep ' + f + ' ' + check) != 0: + print "Cache mismatch - " + f + " is not mentioned in " + check + sys.exit(1) + if not os.path.exists(os.path.join(cachedir, f)): + print "Downloading " + f + " to cache" + if subprocess.call('wget ' + src, cwd=cachedir) != 0: + print "...download of " + f + " failed." + sys.exit(1) + wanted.append(f) +for f in os.listdir(cachedir): + if not f in wanted: + print "Removing unwanted cache file " + f + os.remove(os.path.join(cachedir, f)) + + vagrant(['halt'], serverdir) print "Configuring build server VM" returncode, out, err = vagrant(['up'], serverdir) -- 2.30.2