Skip to content

Commit

Permalink
Do not put the upload logic in make_zip
Browse files Browse the repository at this point in the history
  • Loading branch information
zcbenz committed Aug 1, 2016
1 parent 8f75f10 commit 079a7a1
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 25 deletions.
19 changes: 1 addition & 18 deletions script/lib/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import atexit
import contextlib
import errno
import hashlib
import platform
import re
import shutil
Expand All @@ -16,7 +15,7 @@
import os
import zipfile

from config import is_verbose_mode, s3_config
from config import is_verbose_mode
from env_util import get_vs_env

BOTO_DIR = os.path.abspath(os.path.join(__file__, '..', '..', '..', 'vendor',
Expand Down Expand Up @@ -133,22 +132,6 @@ def make_zip(zip_file_path, files, dirs):
for f in filenames:
zip_file.write(os.path.join(root, f))
zip_file.close()
upload_zip_sha256_checksum(zip_file_path)


def upload_zip_sha256_checksum(zip_file_path):
bucket, access_key, secret_key = s3_config()
checksum_path = '{}.sha256sum'.format(zip_file_path)
safe_unlink(checksum_path)
sha256 = hashlib.sha256()
with open(zip_file_path, 'rb') as f:
sha256.update(f.read())

zip_basename = os.path.basename(zip_file_path)
with open(checksum_path, 'w') as checksum:
checksum.write('{} *{}'.format(sha256.hexdigest(), zip_basename))
s3put(bucket, access_key, secret_key, os.path.dirname(checksum_path),
'atom-shell/tmp', [checksum_path])


def rm_rf(path):
Expand Down
11 changes: 7 additions & 4 deletions script/merge-electron-checksums.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,23 @@
from lib.util import boto_path_dirs

sys.path.extend(boto_path_dirs())

from boto.s3.connection import S3Connection


def main():
args = parse_args()

bucket_name, access_key, secret_key = s3_config()
s3 = S3Connection(access_key, secret_key)
bucket = s3.get_bucket(bucket_name)
if bucket is None:
print('S3 bucket "{}" does not exist!'.format(bucket_name), file=sys.stderr)
return 1

prefix = 'atom-shell/tmp/{0}/'.format(args.version)
shasums = [s3_object.get_contents_as_string().strip()
for s3_object in bucket.list('atom-shell/tmp/', delimiter='/')
if s3_object.key.endswith('.sha256sum') and
args.version in s3_object.key]
for s3_object in bucket.list(prefix, delimiter='/')
if s3_object.key.endswith('.sha256sum')]
print('\n'.join(shasums))
return 0

Expand All @@ -37,5 +39,6 @@ def parse_args():
required=True)
return parser.parse_args()


if __name__ == '__main__':
sys.exit(main())
24 changes: 21 additions & 3 deletions script/upload.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@

import argparse
import errno
from io import StringIO
import hashlib
import os
import subprocess
import sys
import tempfile

from io import StringIO
from lib.config import PLATFORM, get_target_arch, get_chromedriver_version, \
get_platform_key, get_env_var
get_platform_key, get_env_var, s3_config
from lib.util import electron_gyp, execute, get_electron_version, \
parse_version, scoped_cwd
parse_version, scoped_cwd, s3put
from lib.github import GitHub


Expand Down Expand Up @@ -227,6 +228,9 @@ def upload_electron(github, release, file_path):
with open(file_path, 'rb') as f:
upload_io_to_github(github, release, name, f, 'application/zip')

# Upload the checksum file.
upload_sha256_checksum(release['tag'], file_path)


def upload_io_to_github(github, release, name, io, content_type):
params = {'name': name}
Expand All @@ -235,6 +239,20 @@ def upload_io_to_github(github, release, name, io, content_type):
params=params, headers=headers, data=io, verify=False)


def upload_sha256_checksum(version, file_path):
bucket, access_key, secret_key = s3_config()
checksum_path = '{}.sha256sum'.format(file_path)
sha256 = hashlib.sha256()
with open(file_path, 'rb') as f:
sha256.update(f.read())

filename = os.path.basename(file_path)
with open(checksum_path, 'w') as checksum:
checksum.write('{} *{}'.format(sha256.hexdigest(), filename))
s3put(bucket, access_key, secret_key, os.path.dirname(checksum_path),
'atom-shell/tmp/{0}'.format(version), [checksum_path])


def publish_release(github, release_id):
data = dict(draft=False)
github.repos(ELECTRON_REPO).releases(release_id).patch(data=data)
Expand Down

0 comments on commit 079a7a1

Please sign in to comment.