Skip to content

Commit

Permalink
Merge branch 'jgfouca/scripts/jenkins_generic_job_j_opt' into master …
Browse files Browse the repository at this point in the history
…(PR #857)

jenkins_generic_job: Add -j flag

Will allow parallelism to be dialed-down from Jenkins.

[BFB]

* jgfouca/scripts/jenkins_generic_job_j_opt:
  jenkins_generic_job: Add -j flag
  • Loading branch information
jgfouca committed Apr 21, 2016
2 parents 3075fcc + 8a1afc3 commit 83e530e
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions cime/scripts-acme/jenkins_generic_job
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,10 @@ formatter_class=argparse.ArgumentDefaultsHelpFormatter
parser.add_argument("--cdash-build-group", default=wait_for_tests.CDASH_DEFAULT_BUILD_GROUP,
help="The build group to be used to display results on the CDash dashboard.")

parser.add_argument("-j", "--parallel-jobs", type=int, default=None,
help="Number of tasks create_test should perform simultaneously. Default "
"will be min(num_cores, num_tests).")

args = parser.parse_args(args[1:])

acme_util.set_verbosity(args.verbose)
Expand All @@ -86,7 +90,7 @@ formatter_class=argparse.ArgumentDefaultsHelpFormatter
expect(not (args.cdash_project is not wait_for_tests.ACME_MAIN_CDASH and not args.submit_to_cdash),
"Does not make sense to use -p without -d")

return args.generate_baselines, args.submit_to_cdash, args.baseline_name, args.cdash_build_name, args.cdash_project, args.test_suite, args.cdash_build_group, args.baseline_compare
return args.generate_baselines, args.submit_to_cdash, args.baseline_name, args.cdash_build_name, args.cdash_project, args.test_suite, args.cdash_build_group, args.baseline_compare, args.parallel_jobs

###############################################################################
def cleanup_queue(set_of_jobs_we_created):
Expand All @@ -107,7 +111,8 @@ def cleanup_queue(set_of_jobs_we_created):
def jenkins_generic_job(generate_baselines, submit_to_cdash, baseline_name,
arg_cdash_build_name, cdash_project,
arg_test_suite,
cdash_build_group, baseline_compare):
cdash_build_group, baseline_compare,
parallel_jobs):
###############################################################################
"""
Return True if all tests passed
Expand Down Expand Up @@ -199,9 +204,11 @@ def jenkins_generic_job(generate_baselines, submit_to_cdash, baseline_name,
elif (baseline_compare == "yes"):
baseline_args = "-c -b %s" % baseline_name

pjob_arg = "" if parallel_jobs is None else "-j %d" % parallel_jobs

test_id = "%s_%s" % (test_id_root, acme_util.get_utc_timestamp())
create_test_cmd = "./create_test %s --test-root %s -t %s %s" % \
(test_suite, test_root, test_id, baseline_args)
create_test_cmd = "./create_test %s --test-root %s -t %s %s %s" % \
(test_suite, test_root, test_id, baseline_args, pjob_arg)

if (not wait_for_tests.SIGNAL_RECEIVED):
create_test_stat = acme_util.run_cmd(create_test_cmd, from_dir=acme_util.get_acme_scripts_root(),
Expand Down Expand Up @@ -254,10 +261,10 @@ def _main_func(description):

acme_util.stop_buffering_output()

generate_baselines, submit_to_cdash, cdash_build_name, cdash_project, baseline_branch, test_suite, cdash_build_group, no_baseline_compare = \
generate_baselines, submit_to_cdash, cdash_build_name, cdash_project, baseline_branch, test_suite, cdash_build_group, no_baseline_compare, parallel_jobs = \
parse_command_line(sys.argv, description)

sys.exit(0 if jenkins_generic_job(generate_baselines, submit_to_cdash, cdash_build_name, cdash_project, baseline_branch, test_suite, cdash_build_group, no_baseline_compare)
sys.exit(0 if jenkins_generic_job(generate_baselines, submit_to_cdash, cdash_build_name, cdash_project, baseline_branch, test_suite, cdash_build_group, no_baseline_compare, parallel_jobs)
else acme_util.TESTS_FAILED_ERR_CODE)

###############################################################################
Expand Down

0 comments on commit 83e530e

Please sign in to comment.