When git submodule update fails, Quibble does not catch the issue and keep processing:
INFO:quibble.cmd:Updating git submodules of extensions and skins extensions/Wikibase/.gitmodules ... Cloning into 'view/lib/wikibase-serialization'... Submodule path 'view/lib/wikibase-serialization': checked out '3cd428fa063d375291f87359c02d8d1147b6e0fb' Unable to checkout '7581ce4c6f98a36209bebb8e2d4f4158c943c629' in submodule path 'view/lib/wikibase-data-model' INFO:zuul.CloneMapper:Workspace path set to: ./
Probably git submodule just exit 0 when that should be a hard fail.
The relevant Quibble code is:
def ext_skin_submodule_update(self): self.log.info('Updating git submodules of extensions and skins') # From JJB macro ext-skins-submodules-update # jjb/mediawiki-extensions.yaml subprocess.check_call([ # Do not add ., or that will process mediawiki/core submodules in # wmf branches which is a mess. 'find', 'extensions', 'skins', '-maxdepth', '2', '-name', '.gitmodules', '-print', '-execdir', 'bash', '-xe', '-c', '\n'.join([ 'git submodule foreach git clean -xdff -q', 'git submodule update --init --recursive', 'git submodule status', ]), ';', # end of -execdir ], cwd=self.mw_install_path)