]> git.ipfire.org Git - pbs.git/commitdiff
builds: Move updating repositories from jobs
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 9 Mar 2023 22:56:54 +0000 (22:56 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 9 Mar 2023 22:56:54 +0000 (22:56 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/builds.py
src/buildservice/jobs.py

index e51cbf50abd706880ebd26f558937b02379a94c4..0a0a4fa0fc8d9d54664d14832f8dc229efa2d1b6 100644 (file)
@@ -435,6 +435,10 @@ class Build(base.DataObject):
                if self.has_finished():
                        return
 
+               # On success, update all repositories
+               if not job.has_failed():
+                       await self._update_repos()
+
                # If all jobs have finished, the build has finished
                elif all((j.has_finished() for j in self.jobs)):
                        return await self.finished(success=True)
@@ -626,6 +630,14 @@ class Build(base.DataObject):
 
                return list(repos)
 
+       async def _update_repos(self):
+               """
+                       This method should be called if the repositories should be updated
+               """
+               await asyncio.gather(
+                       *(repo.has_changed() for repo in self.repos),
+               )
+
        ## Bugs
 
        def get_bug_ids(self):
index d9c22c24ad8997b3c11f9bb96df5b35939abc4f8..054e70d00ae9470b6fbde37968da5bb2543d07b1 100644 (file)
@@ -313,12 +313,6 @@ class Job(base.DataObject):
                # Propagate any changes to the build
                await self.build._job_finished(job=self)
 
-               # On success, update all repositories
-               if success:
-                       await asyncio.gather(
-                               *(repo.has_changed() for repo in self.build.repos),
-                       )
-
        def is_running(self):
                """
                        Returns True if this job is running