diff --git a/contrib/mbs-build b/contrib/mbs-build index 35d884ff..6d6fa197 100755 --- a/contrib/mbs-build +++ b/contrib/mbs-build @@ -263,7 +263,7 @@ def submit_module_build(scm_url, branch, server, id_provider, pyrpkg, verify=Tru return data['id'] return -3 -def do_local_build(scm_url, branch): +def do_local_build(scm_url, branch, skiptests): """ Starts the local build using the 'mbs-manager build_module_locally' command. Returns exit code of that command or None when scm_url or @@ -274,9 +274,15 @@ def do_local_build(scm_url, branch): if not scm_url or not branch: return None + logging.info("Starting local build of %s, branch %s", scm_url, branch) - process = subprocess.Popen(['mbs-manager', 'build_module_locally', - scm_url, branch]) + command = ['mbs-manager', 'build_module_locally'] + if skiptests: + command.append('--skiptests') + logging.info("Tests will be skipped due to --skiptests option.") + command.extend([scm_url, branch]) + + process = subprocess.Popen(command) process.communicate() return process.returncode @@ -412,6 +418,8 @@ def main(): "repository with a module.") parser_local.add_argument("scm_url", nargs='?') parser_local.add_argument("branch", nargs='?') + parser_local.add_argument('--skiptests', dest='skiptests', action='store_true', + help="add macro for skipping check section/phase") parser_overview = subparsers.add_parser( 'overview', help="show overview of module builds", @@ -446,7 +454,7 @@ def main(): else: logging.info("Submitted module build %r" % build_id) elif args.cmd_name == "local": - sys.exit(do_local_build(args.scm_url, args.branch)) + sys.exit(do_local_build(args.scm_url, args.branch, args.skiptests)) elif args.cmd_name == "watch": # Watch the module build. try: diff --git a/module_build_service/manage.py b/module_build_service/manage.py index 4643a5d9..9bc4c8f3 100644 --- a/module_build_service/manage.py +++ b/module_build_service/manage.py @@ -122,7 +122,7 @@ def cleardb(): @manager.command -def build_module_locally(url, branch): +def build_module_locally(url, branch, skiptests=False): """ Performs local module build using Mock """ conf.set_item("system", "mock") @@ -149,7 +149,8 @@ def build_module_locally(url, branch): db.create_all() username = getpass.getuser() - submit_module_build_from_scm(username, url, branch, allow_local_url=True) + submit_module_build_from_scm(username, url, branch, allow_local_url=True, + skiptests=skiptests) stop = module_build_service.scheduler.make_simple_stop_condition(db.session) diff --git a/module_build_service/utils.py b/module_build_service/utils.py index 9e4a1cc7..2a353d39 100644 --- a/module_build_service/utils.py +++ b/module_build_service/utils.py @@ -722,7 +722,7 @@ def submit_module_build_from_yaml(username, handle, optional_params=None): _url_check_re = re.compile(r"^[^:/]+:.*$") def submit_module_build_from_scm(username, url, branch, allow_local_url=False, - optional_params=None): + skiptests=False, optional_params=None): # Translate local paths into file:// URL if allow_local_url and not _url_check_re.match(url): log.info( @@ -730,6 +730,8 @@ def submit_module_build_from_scm(username, url, branch, allow_local_url=False, url = os.path.abspath(url) url = "file://" + url mmd, scm, yaml = _fetch_mmd(url, branch, allow_local_url) + if skiptests: + mmd.buildopts.rpms.macros += "\n\n%check exit 0\n" return submit_module_build(username, url, mmd, scm, yaml, optional_params)