blob: 653f34d7cb85a924e5268e9e3643099c5ab15667 [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__)
def main(args):
assert len(args) == 2 or len(args) == 3, args
if len(args) == 3:
r = args.pop(0)
assert r == '--revert', r
revert = 'old-'
else:
revert = ''
src_dir = os.path.abspath(args.pop(0))
out_dir = os.path.abspath(args.pop(0))
assert os.path.exists(src_dir), src_dir
src_lib_dir = os.path.join(src_dir, "skywater-pdk", "libraries")
assert os.path.exists(src_lib_dir), src_lib_dir
lib_versions = {}
for l in libraries.keys():
lib_dir = os.path.join(src_lib_dir, l)
assert os.path.exists(lib_dir), lib_dir
versions = [tuple(int(x) for x in v[1:].split('.')) for v in os.listdir(lib_dir) if v.startswith('v')]
versions.sort()
lib_versions[l] = tuple(versions)
print(l, versions)
for v in versions:
ov = out_v(v, versions)
print(' ', v, ov)
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
for l in libraries.keys():
git_out_dir = os.path.join(git_clone_dir, l)
assert os.path.exists(git_out_dir), git_out_dir
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():
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)
versions = lib_versions[l]
for i, v in enumerate(versions):
pv = previous_v(v, versions)
ov = out_v(v, versions)
v_branch = "branch-{}.{}.{}".format(*ov)
v_tag = "v{}.{}.{}".format(*ov)
print("Pushing", v_branch)
git('push origin --force {1}{0}:{0}'.format(v_branch, revert), git_out_dir)
git('push origin --force {0}'.format(v_tag), git_out_dir)
git('push origin --force {1}{0}:{0}'.format(v_branch, revert), git_out_dir)
git('push origin --force master', git_out_dir)
print('='*75, flush=True)
if __name__ == "__main__":
sys.exit(main(sys.argv[1:]))