add tag script
This commit is contained in:
parent
9a806d04fc
commit
cfeac5ec80
|
@ -0,0 +1,80 @@
|
|||
#! /usr/bin/python3
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('-f', '--force', action='store_true')
|
||||
parser.add_argument('-m', '--message', dest='message', type=str)
|
||||
parser.add_argument('-b', '--browser', action='store_true')
|
||||
args = parser.parse_args()
|
||||
return args
|
||||
|
||||
|
||||
def main():
|
||||
args = parse_args()
|
||||
|
||||
# determine main branch
|
||||
for name in ('main', 'master'):
|
||||
remote_branch = 'origin/' + name
|
||||
try:
|
||||
subprocess.check_call(['git', 'rev-parse', remote_branch],
|
||||
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||
except subprocess.CalledProcessError:
|
||||
continue
|
||||
else:
|
||||
break
|
||||
else:
|
||||
print('no remote branch?')
|
||||
sys.exit(0)
|
||||
|
||||
current_version = subprocess.check_output(['git', 'describe', remote_branch]).decode('ascii')
|
||||
if '-g' not in current_version and not args.force:
|
||||
print('nothing to do')
|
||||
sys.exit(0)
|
||||
|
||||
version_parts = [int(x) for x in current_version.strip('v').split('-')[0].split('.')]
|
||||
version_parts[-1] += 1
|
||||
if len(version_parts) > 1 and version_parts[-1] == 100:
|
||||
version_parts[-2] += 1
|
||||
version_parts[-1] = 0
|
||||
new_tag_value = 'v' + '.'.join([str(x) for x in version_parts])
|
||||
#subprocess.call(['git', 'log', '--oneline', '%s..%s' % (current_version.split('-')[0], remote_branch)])
|
||||
while True:
|
||||
ok = input('tag with %s, ok? [Y/n/o/l] ' % new_tag_value)
|
||||
if ok.lower() == 'o':
|
||||
while True:
|
||||
new_tag_value = input('enter tag: ').strip()
|
||||
if new_tag_value.startswith('v'):
|
||||
break
|
||||
continue
|
||||
if ok.lower() == 'l':
|
||||
# log
|
||||
continue
|
||||
if ok.lower() == 'n':
|
||||
print('aborting')
|
||||
sys.exit(0)
|
||||
break
|
||||
message = args.message or new_tag_value
|
||||
subprocess.check_call(['git', 'tag', '-a', new_tag_value, remote_branch, '-m', message])
|
||||
subprocess.check_call(['git', 'push', 'origin', new_tag_value])
|
||||
if args.browser:
|
||||
module_name = os.getcwd().split('/')[-1]
|
||||
jenkins_names = {'godo.js': 'godo'}
|
||||
module_name = jenkins_names.get(module_name, module_name)
|
||||
if module_name in ('publik-base-theme', 'combo-plugin-gnm', 'gadjo', 'godo'):
|
||||
# full build
|
||||
subprocess.check_call(['sensible-browser',
|
||||
'https://jenkins.entrouvert.org/job/%s/' % module_name])
|
||||
else:
|
||||
# restart at last step
|
||||
subprocess.check_call(['sensible-browser',
|
||||
'https://jenkins.entrouvert.org/job/%s/lastBuild/restart/' % module_name])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Reference in New Issue