blob: 17e1538fd0f599f4a564b7159a05bf5d1812a49d [file] [log] [blame]
#!/usr/bin/env python3
import datetime
import os
import pprint
import shutil
import subprocess
import sys
import tempfile
import time
from library_submodules import *
__dir__ = os.path.dirname(__file__)
FORCE=""
FORCE="--force"
def main(args):
if '--revert' in args:
args.remove('--revert')
revert = 'old-'
else:
revert = ''
out_dir = os.path.abspath(args.pop(0))
print()
print()
assert os.path.exists(out_dir), out_dir
git_clone_dir = os.path.join(out_dir, "skywater-pdk")
assert os.path.exists(git_clone_dir), git_clone_dir
# Check everything first
skip = set()
for l in libraries.keys():
git_out_dir = os.path.join(git_clone_dir, l)
if not os.path.exists(git_out_dir):
skip.add(l)
continue
assert os.path.exists(os.path.join(git_out_dir, ".git")), "Git directory was not created in:"+git_out_dir
for l in libraries.keys():
if l in skip:
continue
git_out_dir = os.path.join(git_clone_dir, l)
assert os.path.exists(git_out_dir), git_out_dir
print()
print()
print('Doing push for', l)
print('='*75, flush=True)
tags = subprocess.check_output('git tag -l', shell=True, cwd=git_out_dir)
tags = tags.decode('utf-8')
versions = [tuple(int(i) for i in v[1:].split('.')) for v in tags.split()]
for i, v in enumerate(versions):
if v == (0,0,0):
continue
v_branch = "branch-{}.{}.{}".format(*v)
v_tag = "v{}.{}.{}".format(*v)
print("Pushing", v_branch)
git('push origin {f} {1}{0}:{0}'.format(v_branch, revert, f=FORCE), git_out_dir)
git('push origin --force {0}'.format(v_tag), git_out_dir)
git('push origin {f} {1}{0}:{0}'.format(v_branch, revert, f=FORCE), git_out_dir)
git('push origin {f} master'.format(f=FORCE), git_out_dir)
print('='*75, flush=True)
if __name__ == "__main__":
sys.exit(main(sys.argv[1:]))