summaryrefslogtreecommitdiffstats
path: root/llvm/utils/release/github-upload-release.py
diff options
context:
space:
mode:
authorTom Stellard <tstellar@redhat.com>2019-07-25 01:43:36 +0000
committerTom Stellard <tstellar@redhat.com>2019-07-25 01:43:36 +0000
commit925ccdbfd758efd3ab0c9103214cc1fe7de0e15e (patch)
tree659c41b7cb27735ff25334819e755ac88fdd6e89 /llvm/utils/release/github-upload-release.py
parenta2d74d3d9021c3130291b0d4a264ce214211b168 (diff)
downloadbcm5719-llvm-925ccdbfd758efd3ab0c9103214cc1fe7de0e15e.tar.gz
bcm5719-llvm-925ccdbfd758efd3ab0c9103214cc1fe7de0e15e.zip
Add github-release.py script
Summary: This script can be used for uploading relases sources and binaries to github. Reviewers: hans Reviewed By: hans Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64841 llvm-svn: 366977
Diffstat (limited to 'llvm/utils/release/github-upload-release.py')
-rwxr-xr-xllvm/utils/release/github-upload-release.py77
1 files changed, 77 insertions, 0 deletions
diff --git a/llvm/utils/release/github-upload-release.py b/llvm/utils/release/github-upload-release.py
new file mode 100755
index 00000000000..bbaf2f34279
--- /dev/null
+++ b/llvm/utils/release/github-upload-release.py
@@ -0,0 +1,77 @@
+#!/usr/bin/env python3
+# ===-- github-release.py -------------------------------------------------===#
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+#===------------------------------------------------------------------------===#
+#
+# Create and manage releases in the llvm github project.
+#
+# This script requires python3 and the PyGithub module.
+#
+# Example Usage:
+#
+# You will need to obtain a personal access token for your github account in
+# order to use this script. Instructions for doing this can be found here:
+# https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line
+#
+# Create a new release from an existing tag:
+# ./github-release.py --token $github_token --release 8.0.1-rc4 create
+#
+# Upload files for a release
+# ./github-release.py --token $github_token --release 8.0.1-rc4 upload --files llvm-8.0.1rc4.src.tar.xz
+#
+# You can upload as many files as you want at a time and use wildcards e.g.
+# ./github-release.py --token $github_token --release 8.0.1-rc4 upload --files *.src.*
+#===------------------------------------------------------------------------===#
+
+
+import argparse
+import github
+
+def create_release(repo, release, tag = None, name = None, message = None):
+ if not tag:
+ tag = 'llvmorg-{}'.format(release)
+
+ if not name:
+ name = 'LLVM {}'.format(release)
+
+ if not message:
+ message = 'LLVM {} Release'.format(release)
+
+ prerelease = True if "rc" in release else False
+
+ repo.create_git_release(tag = tag, name = name, message = message,
+ prerelease = prerelease)
+
+def upload_files(repo, release, files):
+ release = repo.get_release('llvmorg-{}'.format(release))
+ for f in files:
+ print('Uploading {}'.format(f))
+ release.upload_asset(f)
+ print("Done")
+
+
+
+parser = argparse.ArgumentParser()
+parser.add_argument('command', type=str, choices=['create', 'upload'])
+
+# All args
+parser.add_argument('--token', type=str)
+parser.add_argument('--release', type=str)
+
+# Upload args
+parser.add_argument('--files', nargs='+', type=str)
+
+
+args = parser.parse_args()
+
+github = github.Github(args.token)
+llvm_repo = github.get_organization('llvm').get_repo('llvm-project')
+
+if args.command == 'create':
+ create_release(llvm_repo, args.release)
+if args.command == 'upload':
+ upload_files(llvm_repo, args.release, args.files)
OpenPOWER on IntegriCloud