|
|
|
@ -53,6 +53,7 @@ import jobset |
|
|
|
|
import report_utils |
|
|
|
|
import watch_dirs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ROOT = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '../..')) |
|
|
|
|
os.chdir(ROOT) |
|
|
|
|
|
|
|
|
@ -685,23 +686,30 @@ if args.use_docker: |
|
|
|
|
sys.exit(0) |
|
|
|
|
|
|
|
|
|
# update submodules if necessary |
|
|
|
|
if args.update_submodules: |
|
|
|
|
for spec in args.update_submodules: |
|
|
|
|
spec = spec.split(':', 1) |
|
|
|
|
if len(spec) == 1: |
|
|
|
|
submodule = spec[0] |
|
|
|
|
branch = 'master' |
|
|
|
|
elif len(spec) == 2: |
|
|
|
|
submodule = spec[0] |
|
|
|
|
branch = spec[1] |
|
|
|
|
cwd = 'third_party/%s' % submodule |
|
|
|
|
def git(cmd, cwd=cwd): |
|
|
|
|
print 'in %s: git %s' % (cwd, cmd) |
|
|
|
|
subprocess.check_call('git %s' % cmd, cwd=cwd, shell=True) |
|
|
|
|
git('fetch') |
|
|
|
|
git('checkout %s' % branch) |
|
|
|
|
git('pull origin %s' % branch) |
|
|
|
|
subprocess.check_call('tools/buildgen/generate_projects.sh', shell=True) |
|
|
|
|
need_to_regenerate_projects = False |
|
|
|
|
for spec in args.update_submodules: |
|
|
|
|
spec = spec.split(':', 1) |
|
|
|
|
if len(spec) == 1: |
|
|
|
|
submodule = spec[0] |
|
|
|
|
branch = 'master' |
|
|
|
|
elif len(spec) == 2: |
|
|
|
|
submodule = spec[0] |
|
|
|
|
branch = spec[1] |
|
|
|
|
cwd = 'third_party/%s' % submodule |
|
|
|
|
def git(cmd, cwd=cwd): |
|
|
|
|
print 'in %s: git %s' % (cwd, cmd) |
|
|
|
|
subprocess.check_call('git %s' % cmd, cwd=cwd, shell=True) |
|
|
|
|
git('fetch') |
|
|
|
|
git('checkout %s' % branch) |
|
|
|
|
git('pull origin %s' % branch) |
|
|
|
|
if os.path.exists('src/%s/gen_build_yaml.py' % submodule): |
|
|
|
|
need_to_regenerate_projects = True |
|
|
|
|
if need_to_regenerate_projects: |
|
|
|
|
if jobset.platform_string() == 'linux': |
|
|
|
|
subprocess.check_call('tools/buildgen/generate_projects.sh', shell=True) |
|
|
|
|
else: |
|
|
|
|
print 'WARNING: may need to regenerate projects, but since we are not on' |
|
|
|
|
print ' Linux this step is being skipped. Compilation MAY fail.' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# grab config |
|
|
|
@ -962,7 +970,7 @@ def _build_and_run( |
|
|
|
|
newline_on_success=newline_on_success, travis=args.travis) |
|
|
|
|
if num_failures: |
|
|
|
|
return 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if build_only: |
|
|
|
|
return 0 |
|
|
|
|
|
|
|
|
|