Skip to content

Commit

Permalink
Fix building submodules at head
Browse files Browse the repository at this point in the history
- ensure failure propogates through run_jenkins.sh
- don't try to regenerate projects on non-linux environments
  • Loading branch information
ctiller committed Jan 6, 2016
1 parent 38b6eee commit b361b4e
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 22 deletions.
14 changes: 10 additions & 4 deletions tools/jenkins/run_jenkins.sh
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ if [ "$platform" == "linux" ]
then
echo "building $language on Linux"

./tools/run_tests/run_tests.py --use_docker -t -l $language -c $config -x report.xml $@ || true
./tools/run_tests/run_tests.py --use_docker -t -l $language -c $config -x report.xml $@ || TESTS_FAILED="true"

elif [ "$platform" == "windows" ]
then
Expand All @@ -63,19 +63,19 @@ then
# Prevent msbuild from picking up "platform" env variable, which would break the build
unset platform

python tools/run_tests/run_tests.py -t -l $language -c $config -x report.xml $@ || true
python tools/run_tests/run_tests.py -t -l $language -c $config -x report.xml $@ || TESTS_FAILED="true"

elif [ "$platform" == "macos" ]
then
echo "building $language on MacOS"

./tools/run_tests/run_tests.py -t -l $language -c $config -x report.xml $@ || true
./tools/run_tests/run_tests.py -t -l $language -c $config -x report.xml $@ || TESTS_FAILED="true"

elif [ "$platform" == "freebsd" ]
then
echo "building $language on FreeBSD"

MAKE=gmake ./tools/run_tests/run_tests.py -t -l $language -c $config -x report.xml $@ || true
MAKE=gmake ./tools/run_tests/run_tests.py -t -l $language -c $config -x report.xml $@ || TESTS_FAILED="true"

else
echo "Unknown platform $platform"
Expand All @@ -87,3 +87,9 @@ then
mkdir -p reports
echo 'No reports generated.' > reports/index.html
fi

if [ "$TESTS_FAILED" != "" ]
then
exit 1
fi

44 changes: 26 additions & 18 deletions tools/run_tests/run_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
import report_utils
import watch_dirs


ROOT = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '../..'))
os.chdir(ROOT)

Expand Down Expand Up @@ -685,23 +686,30 @@ def runs_per_test_type(arg_str):
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
Expand Down Expand Up @@ -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

Expand Down

0 comments on commit b361b4e

Please sign in to comment.