Skip to content

Commit

Permalink
Merge branch 'master' of github.com:playcanvas/engine
Browse files Browse the repository at this point in the history
  • Loading branch information
Maksims Mihejevs committed Dec 2, 2015
2 parents 0803e49 + 25e1bb2 commit c667199
Showing 1 changed file with 96 additions and 0 deletions.
96 changes: 96 additions & 0 deletions release.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
"""
Release script:
Merges changes from default into stable and increments the version number according to input argument "major", "minor", "rev"
"""

import tempfile
import shutil
import sys
import subprocess

def editversionpy(filename, version):
f = open(filename, "w")
f.write('%s\n' % (version))
f.close()

def get_version_tuple(filename):
import re
f = open(filename)
version = re.findall("(\d*\.\d*\.\d*)", f.read())[0]
parts = version.split(".")

return (int(parts[0]), int(parts[1]), int(parts[2]))

def get_new_version_number(version_tuple, release_type):
major = version_tuple[0]
minor = version_tuple[1]
rev = version_tuple[2]

if release_type == "major":
major = major + 1
minor = 0
rev = 0
if release_type == "minor":
minor = minor + 1
rev = 0
if release_type == "rev":
rev = rev + 1

return (major, minor, rev)

def to_string(v, after=''):
return "%s.%s.%s%s" % (v[0], v[1], v[2], after)

def run_commands(cmds, release_type):
version_file = "VERSION"

versions = {}
release_version = None
next_version = None

for cmd in cmds:
print("running: %s" % cmd)
if cmd[0] == "editversionpy":
# increment the version from the version slot, using the release_type specified
next_version = get_new_version_number(versions[cmd[1]], cmd[2])
editversionpy(version_file, to_string(next_version, cmd[3]))
elif cmd[0] == "getversion":
# Store the version from the current version file into a named slot
versions[cmd[1]] = get_version_tuple(version_file)
elif cmd[0] == "commit":
note = cmd[1] % (to_string(next_version))
retcode = subprocess.call(["git", "commit", "-a", "-m", note])
if retcode:
sys.exit(retcode)
elif cmd[0] == "tag":
tag = "v%s" % (to_string(next_version))
retcode = subprocess.call(["git", "tag", tag])
if retcode:
sys.exit(retcode)
else:
retcode = subprocess.call(cmd)
if retcode:
sys.exit(retcode)

def release(release_type):
cmds = [
["git", "checkout", "stable"],
["getversion", "stable"],
["git", "merge", "master"],
["editversionpy", "stable", release_type, ""],
["tag"],
["commit", "[RELEASE] v%s"],
["getversion", "stable"],
["git", "checkout", "master"],
["git", "merge", "stable"],
["editversionpy", "stable", "minor", "-dev"],
["commit", "[VERSION] v%s-dev"],
]

run_commands(cmds, release_type)

if sys.argv[1] in ["major", "minor", "rev"]:
release(sys.argv[1])
else:
print("Argument should be 'major', 'minor' or 'rev'")

0 comments on commit c667199

Please sign in to comment.