| #!/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:])) |