Unverified Commit 5de4edd1 authored by Jinjing Zhou's avatar Jinjing Zhou Committed by GitHub
Browse files

[Regression] Add replace_branch.py (#2884)

* fix

* fix

* debug

* fix

* fix

* fix

* fix

* ci

* fix

* fix

* remove duplicate instruction

* need this file in the main branch

* add nightly

* Delete nightly.jenkins
parent d70ca6eb
import argparse
import json
import os
import re
def json_minify(string, strip_space=True):
'''
Based on JSON.minify.js:
https://github.com/getify/JSON.minify
Contributers:
- Pradyun S. Gedam (conditions and variable names changed)
'''
tokenizer = re.compile(r'"|(/\*)|(\*/)|(//)|\n|\r')
in_string = False
in_multi = False
in_single = False
new_str = []
index = 0
for match in re.finditer(tokenizer, string):
if not (in_multi or in_single):
tmp = string[index:match.start()]
if not in_string and strip_space:
# replace white space as defined in standard
tmp = re.sub('[ \t\n\r]+', '', tmp)
new_str.append(tmp)
index = match.end()
val = match.group()
if val == '"' and not (in_multi or in_single):
escaped = re.search(r'(\\)*$', string[:match.start()])
# start of string or unescaped quote character to end string
if not in_string or (escaped is None or len(escaped.group()) % 2 == 0):
in_string = not in_string
index -= 1 # include " character in next catch
elif not (in_string or in_multi or in_single):
if val == '/*':
in_multi = True
elif val == '//':
in_single = True
elif val == '*/' and in_multi and not (in_string or in_single):
in_multi = False
elif val in '\r\n' and not (in_multi or in_string) and in_single:
in_single = False
elif not ((in_multi or in_single) or (val in ' \r\n\t' and strip_space)):
new_str.append(val)
new_str.append(string[index:])
content = ''.join(new_str)
content = content.replace(",]", "]")
content = content.replace(",}", "}")
return content
def add_prefix(branch_name):
if '/' not in branch_name:
return "origin/"+branch_name
else:
return branch_name
def change_branch(branch_str: str):
branches = [add_prefix(b) for b in branch_str.split(",")]
with open("../asv.conf.json", "r") as f:
ss = f.read()
config_json = json.loads(json_minify(ss))
config_json["branches"] = branches
with open("../asv.conf.json", "w") as f:
json.dump(config_json, f)
if __name__ == "__main__":
if "BRANCH_STR" in os.environ:
change_branch(os.environ["BRANCH_STR"])
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment