Add filtering of projects to skip non-buildable
This will allow the filtering out of projects to build from the superrepo as installation via deb is not desirable for all. Change-Id: Ifc441c1ca1ccf8237cf64629adf3e166ce054e44 Signed-off-by: Philip Marc Schwartz <philip@progmad.com>
This commit is contained in:
parent
0344182184
commit
dffb688815
|
@ -25,7 +25,7 @@ from giftwrap.settings import Settings
|
||||||
class BuildSpec(object):
|
class BuildSpec(object):
|
||||||
|
|
||||||
def __init__(self, manifest, version, build_type=None, parallel=True,
|
def __init__(self, manifest, version, build_type=None, parallel=True,
|
||||||
limit_projects=None):
|
limit_projects=None, project_filter=None):
|
||||||
self._manifest = yaml.load(manifest)
|
self._manifest = yaml.load(manifest)
|
||||||
self.version = version
|
self.version = version
|
||||||
self.build_type = build_type
|
self.build_type = build_type
|
||||||
|
@ -38,6 +38,7 @@ class BuildSpec(object):
|
||||||
parallel = False
|
parallel = False
|
||||||
manifest_settings['parallel_build'] = parallel
|
manifest_settings['parallel_build'] = parallel
|
||||||
self.settings = Settings.factory(manifest_settings)
|
self.settings = Settings.factory(manifest_settings)
|
||||||
|
self.project_filter = project_filter
|
||||||
self.projects = self._render_projects(limit_projects)
|
self.projects = self._render_projects(limit_projects)
|
||||||
|
|
||||||
def _render_projects(self, limit_projects):
|
def _render_projects(self, limit_projects):
|
||||||
|
@ -97,4 +98,9 @@ class BuildSpec(object):
|
||||||
projects.append(OpenstackProject.factory(self.settings,
|
projects.append(OpenstackProject.factory(self.settings,
|
||||||
project,
|
project,
|
||||||
project_version))
|
project_version))
|
||||||
|
if self.project_filter:
|
||||||
|
for project in projects:
|
||||||
|
if project.name in self.project_filter:
|
||||||
|
projects.remove(project)
|
||||||
|
|
||||||
return projects
|
return projects
|
||||||
|
|
|
@ -31,7 +31,7 @@ class Settings(object):
|
||||||
package_name_format=None, version=None,
|
package_name_format=None, version=None,
|
||||||
base_path=None, install_path=None, gerrit_dependencies=True,
|
base_path=None, install_path=None, gerrit_dependencies=True,
|
||||||
force_overwrite=False, output_dir=None, include_config=True,
|
force_overwrite=False, output_dir=None, include_config=True,
|
||||||
parallel_build=True, constraints=None):
|
parallel_build=True, constraints=None, project_filter=None):
|
||||||
if not version:
|
if not version:
|
||||||
raise Exception("'version' is a required settings")
|
raise Exception("'version' is a required settings")
|
||||||
if constraints is None:
|
if constraints is None:
|
||||||
|
@ -49,6 +49,7 @@ class Settings(object):
|
||||||
self.include_config = include_config
|
self.include_config = include_config
|
||||||
self.parallel_build = parallel_build
|
self.parallel_build = parallel_build
|
||||||
self.constraints = constraints
|
self.constraints = constraints
|
||||||
|
self.project_filter = project_filter
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def package_name_format(self):
|
def package_name_format(self):
|
||||||
|
|
|
@ -48,7 +48,7 @@ def build(args):
|
||||||
manifest = fh.read()
|
manifest = fh.read()
|
||||||
|
|
||||||
buildspec = BuildSpec(manifest, args.version, args.type, args.parallel,
|
buildspec = BuildSpec(manifest, args.version, args.type, args.parallel,
|
||||||
args.projects)
|
args.projects, args.project_filter)
|
||||||
builder = BuilderFactory.create_builder(args.type, buildspec)
|
builder = BuilderFactory.create_builder(args.type, buildspec)
|
||||||
|
|
||||||
def _signal_handler(*args):
|
def _signal_handler(*args):
|
||||||
|
@ -91,6 +91,8 @@ def main():
|
||||||
return arg.split(',')
|
return arg.split(',')
|
||||||
|
|
||||||
build_subcmd.add_argument('-p', '--projects', type=csvarg, dest='projects')
|
build_subcmd.add_argument('-p', '--projects', type=csvarg, dest='projects')
|
||||||
|
build_subcmd.add_argument('-f', '--filter', type=csvarg,
|
||||||
|
dest='project_filter')
|
||||||
build_subcmd.set_defaults(func=build)
|
build_subcmd.set_defaults(func=build)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
Loading…
Reference in New Issue