diff options
author | Matthew Somerville <matthew@mysociety.org> | 2014-07-09 20:37:57 +0100 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2014-07-09 21:35:11 +0100 |
commit | 49cb1e91e0cf01e27843f4c8e22731b7d28c049e (patch) | |
tree | cfecff3af9fdaef3591b943ddb7c6c120815b973 /.travis | |
parent | 8a783540ed52508bf72597f3e5ca85f6382c8165 (diff) |
Switch carton bundling to S3.
Diffstat (limited to '.travis')
-rwxr-xr-x | .travis/after_script | 34 | ||||
-rwxr-xr-x | .travis/install | 28 |
2 files changed, 25 insertions, 37 deletions
diff --git a/.travis/after_script b/.travis/after_script index 469796be9..37fd37eb8 100755 --- a/.travis/after_script +++ b/.travis/after_script @@ -1,20 +1,20 @@ #!/usr/bin/env python import hashlib -import json import os import subprocess import sys import tarfile -sharename = '48rLGpU1' +import boto +from boto.s3.key import Key root = os.path.join(os.path.dirname(__file__), '..') with open(os.path.join(root, 'cpanfile.snapshot')) as cpanfile: hash = hashlib.md5(cpanfile.read()).hexdigest() wanted_filename = 'fixmystreet-local-%s.tgz' % hash -if os.path.exists(wanted_filename): +if os.path.exists(wanted_filename) and os.path.getsize(wanted_filename): print "File was downloaded, no need to upload" sys.exit() @@ -23,27 +23,11 @@ tfile = tarfile.open(wanted_filename, 'w:gz') tfile.add('local') tfile.close() -print "Logging in..." -refreshtoken = os.getenv('TOKEN') -if not refreshtoken: - print " No token available, bailing" - sys.exit() -output = subprocess.check_output([ - 'curl', '-s', '-X', 'POST', '--data', '{"refreshtoken":"%s"}' % refreshtoken, - 'https://open.ge.tt/1/users/login' -]) -output = json.loads(output) -accesstoken = output['accesstoken'] - -print "Creating file..." -output = subprocess.check_output([ - 'curl', '-s', '-X', 'POST', '--data', '{"filename":"%s"}' % wanted_filename, - 'https://open.ge.tt/1/files/%s/create?accesstoken=%s' % (sharename, accesstoken) -]) -output = json.loads(output) -puturl = output['upload']['puturl'] +print "Uploading archive to S3..." +conn = boto.connect_s3() +bucket = conn.get_bucket('fixmystreet-bundle-cache') +key = Key(bucket) +key.key = wanted_filename +key.set_contents_from_filename(wanted_filename) -print "Uploading archive to ge.tt..." -with open('output', 'w') as out: - subprocess.call([ 'curl', '-#', '--upload-file', wanted_filename, puturl ], stdout=out) print "Completed" diff --git a/.travis/install b/.travis/install index 126d641a1..8514e801d 100755 --- a/.travis/install +++ b/.travis/install @@ -1,28 +1,32 @@ #!/usr/bin/env python import hashlib -import json import os import sys import tarfile -import urllib -sharename = '48rLGpU1' +import boto +from boto.s3.key import Key +from boto.exception import S3ResponseError root = os.path.join(os.path.dirname(__file__), '..') with open(os.path.join(root, 'cpanfile.snapshot')) as cpanfile: hash = hashlib.md5(cpanfile.read()).hexdigest() wanted_filename = 'fixmystreet-local-%s.tgz' % hash -share = json.loads( urllib.urlopen( 'https://open.ge.tt/1/shares/%s' % sharename ).read() ) -for file in share['files']: - if file['filename'] == wanted_filename and file['readystate'] == 'uploaded': - print "Found cached copy of local, using..." - urllib.urlretrieve('https://open.ge.tt/1/files/%s/%s/blob' % (sharename, file['fileid']), wanted_filename) - if tarfile.is_tarfile(wanted_filename): - tfile = tarfile.open(wanted_filename) - tfile.extractall() - sys.exit(0) +conn = boto.connect_s3() +bucket = conn.get_bucket('fixmystreet-bundle-cache') + +k = Key(bucket) +k.key = wanted_filename +try: + k.get_contents_to_filename(wanted_filename) + if tarfile.is_tarfile(wanted_filename): + tfile = tarfile.open(wanted_filename) + tfile.extractall() + sys.exit(0) +except S3ResponseError: + os.remove(wanted_filename) print "No cached copy found, running carton install..." os.system('cpanm -q Carton') |