abi_check: Update submodules
When grabbing a fresh copy of a branch, it's required to also fetch the
submodule. Add fetching the submodule to abi_check.py.
@@ -75,6 +75,18 @@ class AbiChecker(object):
raise Exception("Checking out worktree failed, aborting")
return git_worktree_path
+ def update_git_submodules(self, git_worktree_path):
+ process = subprocess.Popen(
+ [self.git_command, "submodule", "update", "--init", '--recursive'],
+ cwd=git_worktree_path,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT
+ )
+ output, _ = process.communicate()
+ self.log.info(output.decode("utf-8"))
+ if process.returncode != 0:
+ raise Exception("git submodule update failed, aborting")
+
def build_shared_libraries(self, git_worktree_path):
my_environment = os.environ.copy()
my_environment["CFLAGS"] = "-g -Og"
@@ -131,6 +143,7 @@ class AbiChecker(object):
def get_abi_dump_for_ref(self, git_rev):
git_worktree_path = self.get_clean_worktree_for_git_revision(git_rev)
+ self.update_git_submodules(git_worktree_path)
self.build_shared_libraries(git_worktree_path)
abi_dumps = self.get_abi_dumps_from_shared_libraries(
git_rev, git_worktree_path
