diff options
author | Bob Ippolito <bob@redivi.com> | 2016-10-21 20:31:57 +0700 |
---|---|---|
committer | Bob Ippolito <bob@redivi.com> | 2016-10-21 20:31:57 +0700 |
commit | 6bf95ee0d181b5f7d0121d362c8ba81ede4819d8 (patch) | |
tree | cc9d7a369f055986ed53a05c7252174659d6f98d /scripts | |
parent | 1e184eac6988edee1cdd0f45cfa4c390fc1eea5e (diff) | |
download | simplejson-6bf95ee0d181b5f7d0121d362c8ba81ede4819d8.tar.gz |
add signing and uploading artifacts to the script
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/artifacts.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/scripts/artifacts.py b/scripts/artifacts.py index 4b821cf..a3b0d93 100644 --- a/scripts/artifacts.py +++ b/scripts/artifacts.py @@ -3,9 +3,13 @@ try: except ImportError: from urllib import urlopen +import glob import io import json +import os +import re import subprocess +import sys def get_json(url): @@ -38,10 +42,39 @@ def download_github_artifacts(): for asset in release['assets']: download_file(asset['browser_download_url'], 'dist/{name}'.format(**asset)) +def get_version(): + return subprocess.check_output([sys.executable, 'setup.py', '--version']).strip() + +def artifact_matcher(version): + return re.compile('^simplejson-{}.*\\.(gz|exe|whl)$'.format(re.escape(version))) + +def sign_artifacts(version): + artifacts = set(os.listdir('dist')) + pattern = artifact_matcher(version) + for fn in artifacts: + if pattern.search(fn) and '{}.asc'.format(fn) not in artifacts: + sign_artifact(os.path.join('dist', fn)) + +def sign_artifact(path): + print(' '.join(['gpg', '--detach-sign', '-a', path])) + subprocess.check_call(['gpg', '--detach-sign', '-a', path]) + +def upload_artifacts(version): + artifacts = set(os.listdir('dist')) + pattern = artifact_matcher(version) + args = ['twine', 'upload'] + for fn in artifacts: + if pattern.search(fn): + filename = os.path.join('dist', fn) + args.extend([filename, filename + '.asc']) + subprocess.check_call(args) def main(): download_appveyor_artifacts() download_github_artifacts() + version = get_version() + sign_artifacts(version) + upload_artifacts(version) if __name__ == '__main__': |