release script now makes sure update file is named ripme.jar; added --test option for dry runs

This commit is contained in:
cyian-1756 2018-06-11 09:22:44 -04:00
parent b12821f8cc
commit 7d20b3927d
2 changed files with 24 additions and 10 deletions

View File

@ -15,9 +15,11 @@ parser.add_argument("-f", "--file", help="Path to the version of ripme to releas
parser.add_argument("-t", "--token", help="Your github personal access token") parser.add_argument("-t", "--token", help="Your github personal access token")
parser.add_argument("-d", "--debug", help="Run in debug mode", action="store_true") parser.add_argument("-d", "--debug", help="Run in debug mode", action="store_true")
parser.add_argument("-n", "--non-interactive", help="Do not ask for any input from the user", action="store_true") parser.add_argument("-n", "--non-interactive", help="Do not ask for any input from the user", action="store_true")
parser.add_argument("--test", help="Perform a dry run", action="store_true")
args = parser.parse_args() args = parser.parse_args()
try: try:
# This binds input to raw_input on python2, we do this because input acts like eval on python2
input = raw_input input = raw_input
except NameError: except NameError:
pass pass
@ -38,9 +40,20 @@ def isValidCommitMessage(message):
pattern = re.compile("^\d+\.\d+\.\d+:") pattern = re.compile("^\d+\.\d+\.\d+:")
return re.match(pattern, message) return re.match(pattern, message)
# Checks if the update has the name ripme.jar, if not it renames the file
# Returns the update file path
def renameFile(path):
if not path.endswith("ripme.jar"):
print("Specified file is not named ripme.jar, renaming")
# os.sep is the path separator for the os this is being run on
os.rename(path, path.split(os.sep)[0] + os.sep + "ripme.jar")
return path.split(os.sep)[0] + os.sep + "ripme.jar"
return path
ripmeJson = json.loads(open("ripme.json").read()) ripmeJson = json.loads(open("ripme.json").read())
fileToUploadPath = args.file fileToUploadPath = renameFile(args.file)
InNoninteractiveMode = args.non_interactive InNoninteractiveMode = args.non_interactive
commitMessage = ripmeJson.get("changeList")[0] commitMessage = ripmeJson.get("changeList")[0]
releaseVersion = ripmeJson.get("latestVersion") releaseVersion = ripmeJson.get("latestVersion")
@ -63,11 +76,12 @@ if not isValidCommitMessage(commitMessage):
ripmeUpdate = open(fileToUploadPath, mode='rb').read() ripmeUpdate = open(fileToUploadPath, mode='rb').read()
# The actual hash of the file on disk
actualHash = sha256(ripmeUpdate).hexdigest()
# The hash that we expect the update to have # The hash that we expect the update to have
expectedHash = ripmeJson.get("currentHash") expectedHash = ripmeJson.get("currentHash")
# The actual hash of the file on disk
actualHash = sha256(ripmeUpdate).hexdigest()
# Make sure that the hash of the file we're uploading matches the hash in ripme.json. These hashes not matching will # Make sure that the hash of the file we're uploading matches the hash in ripme.json. These hashes not matching will
# cause ripme to refuse to install the update for all users who haven't disabled update hash checking # cause ripme to refuse to install the update for all users who haven't disabled update hash checking
@ -85,10 +99,10 @@ if not InNoninteractiveMode:
print("Repo: {}/{}".format(repoOwner, repoName)) print("Repo: {}/{}".format(repoOwner, repoName))
input("\nPlease review the information above and ensure it is correct and then press enter") input("\nPlease review the information above and ensure it is correct and then press enter")
if args.test:
print("Accessing github using token") print("Accessing github using token")
g = Github(accessToken) g = Github(accessToken)
print("Creating release") print("Creating release")
release = g.get_user(repoOwner).get_repo(repoName).create_git_release(releaseVersion, commitMessage, "") release = g.get_user(repoOwner).get_repo(repoName).create_git_release(releaseVersion, commitMessage, "")

0
releaseTests.py Normal file
View File