mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-23 11:09:23 +01:00
release.py: Check for clean git checkout and correct branch layout
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
This commit is contained in:
parent
3f773f9f2a
commit
c81cd48fa6
@ -29,12 +29,26 @@ def system(sh, errmsg=None):
|
|||||||
|
|
||||||
def usage():
|
def usage():
|
||||||
error('Usage: %s [-s] <sf username> <version>\nSpecify -s to pass it on '
|
error('Usage: %s [-s] <sf username> <version>\nSpecify -s to pass it on '
|
||||||
'to the relevant git commands.' % sys.argv[0])
|
'to the relevant git commands.\nMust be called from a git checkout.'
|
||||||
|
% sys.argv[0])
|
||||||
|
|
||||||
|
def checkGitRepo():
|
||||||
|
system('git rev-parse --is-inside-work-tree 2>/dev/null',
|
||||||
|
'Must be run from a git checkout.')
|
||||||
|
system('test "$(git rev-parse --show-cdup >/dev/null)" = ""',
|
||||||
|
'Must be run from the top-level directory of the git checkout.')
|
||||||
|
system('git rev-parse --verify HEAD >/dev/null '
|
||||||
|
'&& git update-index --refresh'
|
||||||
|
'&& git diff-files --quiet'
|
||||||
|
'&& git diff-files --cached --quiet HEAD --',
|
||||||
|
'Your tree is unclean. Can\'t run from here.')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
if len(sys.argv) < 3 or len(sys.argv) > 4:
|
if len(sys.argv) < 3 or len(sys.argv) > 4:
|
||||||
usage()
|
usage()
|
||||||
|
|
||||||
|
checkGitRepo()
|
||||||
|
|
||||||
sign = ''
|
sign = ''
|
||||||
if len(sys.argv) == 4:
|
if len(sys.argv) == 4:
|
||||||
if sys.argv[1] == '-s':
|
if sys.argv[1] == '-s':
|
||||||
@ -54,9 +68,8 @@ if __name__ == '__main__':
|
|||||||
' Change to an appropriate directory or remove the supybot '
|
' Change to an appropriate directory or remove the supybot '
|
||||||
'directory to continue.')
|
'directory to continue.')
|
||||||
print 'Checking out fresh tree from git.'
|
print 'Checking out fresh tree from git.'
|
||||||
system('git clone ssh://%s@supybot.git.sourceforge.net/gitroot/supybot', u)
|
system('git clone git+ssh://%s@supybot.git.sourceforge.net/gitroot/supybot', u)
|
||||||
os.chdir('supybot')
|
os.chdir('supybot')
|
||||||
system('git checkout -b maint origin/maint')
|
|
||||||
|
|
||||||
print 'Checking RELNOTES version line.'
|
print 'Checking RELNOTES version line.'
|
||||||
if firstLine('RELNOTES') != 'Version %s' % v:
|
if firstLine('RELNOTES') != 'Version %s' % v:
|
||||||
@ -78,7 +91,11 @@ if __name__ == '__main__':
|
|||||||
% (sign, v, ' '.join(versionFiles)))
|
% (sign, v, ' '.join(versionFiles)))
|
||||||
|
|
||||||
print 'Tagging release.'
|
print 'Tagging release.'
|
||||||
system('git tag %s -m %s' % (sign, v))
|
system('git tag %s -m "Release %s" %s' % (sign or '-a', v, v))
|
||||||
|
|
||||||
|
print 'Pushing release commits.'
|
||||||
|
system('git push origin master')
|
||||||
|
system('git push --tags')
|
||||||
|
|
||||||
print 'Removing test, sandbox.'
|
print 'Removing test, sandbox.'
|
||||||
shutil.rmtree('test')
|
shutil.rmtree('test')
|
||||||
@ -105,16 +122,19 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
print 'Committing %s+git to version files.' % v
|
print 'Committing %s+git to version files.' % v
|
||||||
system('git checkout master')
|
system('git checkout master')
|
||||||
|
system('git pull')
|
||||||
for fn in versionFiles:
|
for fn in versionFiles:
|
||||||
sh = 'perl -pi -e "s/^version\s*=.*/version = \'%s\'/" %s' % \
|
sh = 'perl -pi -e "s/^version\s*=.*/version = \'%s\'/" %s' % \
|
||||||
(v + '+git', fn)
|
(v + '+git', fn)
|
||||||
system(sh, 'Error changing version in %s' % fn)
|
system(sh, 'Error changing version in %s' % fn)
|
||||||
system('git commit %s -m \'Updated to %s.\' %s'
|
system('git commit %s -m \'Updated to %s.\' %s'
|
||||||
% (sign, v, ' '.join(versionFiles)))
|
% (sign, v, ' '.join(versionFiles)))
|
||||||
|
system('git push origin master')
|
||||||
|
|
||||||
print 'Copying new version.txt over to project webserver.'
|
print 'Copying new version.txt over to project webserver.'
|
||||||
system('echo %s > version.txt' % v)
|
system('echo %s > version.txt' % v)
|
||||||
system('scp version.txt %s@shell.sf.net:/home/groups/s/su/supybot/htdocs'%u)
|
system('scp version.txt %s@shell.sf.net:/home/groups/s/su/supybot/htdocs'%u)
|
||||||
|
system('rm version.txt')
|
||||||
|
|
||||||
# print 'Generating documentation.'
|
# print 'Generating documentation.'
|
||||||
# # docFiles is in the format {directory: files}
|
# # docFiles is in the format {directory: files}
|
||||||
|
Loading…
Reference in New Issue
Block a user