Skip to content

Commit f9b49e6

Browse files
gleidi-suseg7
authored andcommitted
pkglistgen: Add flags allowing to build package lists for building or dirty projects.
Co-authored-by: Eugenio Paolantonio <eugenio.paolantonio@suse.com>
1 parent e4cb814 commit f9b49e6

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

pkglistgen/cli.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ def do_handle_update_repos(self, subcmd, opts, project):
5555
@cmdln.option('--only-release-packages', action='store_true', help='Generate 000release-packages only')
5656
@cmdln.option('--only-update-weakremovers', action='store_true', help='Update weakremovers.inc file only')
5757
@cmdln.option('--custom-cache-tag', help='add custom tag to cache dir to avoid issues when running in parallel')
58+
@cmdln.option('--proceed-on-dirty', default=False, action='store_true', help='Package lists are best generated when the target project '
59+
'is done building and is clean. Toggling this option allows the script to keep computing even if the target project is '
60+
'still building or is dirty.')
5861
def do_update_and_solve(self, subcmd, opts):
5962
"""${cmd_name}: update and solve for given scope
6063
@@ -112,7 +115,8 @@ def solve_project(project, scope: str):
112115
only_release_packages=opts.only_release_packages,
113116
only_update_weakremovers=opts.only_update_weakremovers,
114117
stop_after_solve=opts.stop_after_solve,
115-
custom_cache_tag=opts.custom_cache_tag)
118+
custom_cache_tag=opts.custom_cache_tag,
119+
exit_on_dirty=not opts.proceed_on_dirty)
116120
except MismatchedRepoException:
117121
logging.error("Failed to create weakremovers.inc due to mismatch in repos - project most likey started building again!")
118122
# for stagings we have to be strict on the exit value

pkglistgen/tool.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -669,6 +669,7 @@ def update_and_solve_target(
669669
stop_after_solve: bool,
670670
custom_cache_tag,
671671
engine: Engine,
672+
exit_on_dirty=True,
672673
):
673674
self.all_architectures = target_config.get('pkglistgen-archs').split(' ')
674675
self.use_newest_version = str2bool(target_config.get('pkglistgen-use-newest-version', 'False'))
@@ -698,7 +699,10 @@ def update_and_solve_target(
698699
repository=[main_repo], multibuild=True))
699700
if len(root.xpath('result[@state="building"]')) or len(root.xpath('result[@state="dirty"]')):
700701
logging.info(f'{project}/{product_package} build in progress')
701-
return
702+
if exit_on_dirty:
703+
return
704+
else:
705+
logging.info('--proceed-on-dirty has been set, continuing...')
702706
if git_url:
703707
git_url_base, *fragment = git_url.split('#')
704708
if os.path.exists(f"{cache_dir}/.git"):

0 commit comments

Comments
 (0)