]> git.ipfire.org Git - pbs.git/commitdiff
release monitoring: Implement build check
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Jun 2023 14:29:39 +0000 (14:29 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Jun 2023 14:29:39 +0000 (14:29 +0000)
This is so that we won't import any releases that are older than what we
already know.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/releasemonitoring.py

index 9f0c18bf5eda40a09dce64c595e22064ea9e59e5..854d90d15bdc5daf98b0161a3d980f98a0cabfc0 100644 (file)
@@ -332,6 +332,10 @@ class Monitoring(base.DataObject):
                                except ReleaseExistsError as e:
                                        log.debug("Release %s already exists" % e)
 
+                               # The latest build is newer than this release
+                               except BuildExistsError as e:
+                                       log.debug("Latest build is newer")
+
                        # Launch the build
                        if release and release.build:
                                await self.backend.builds.launch([release.build])
@@ -466,15 +470,17 @@ class Monitoring(base.DataObject):
                """
                        Returns True if a build with this version already exists
                """
-               # XXX needs to check if we already have a newer version
-               # XXX packages don't have version separately
-               # XXX How do we get this from EVR?
+               # If there is no build to check against we return False
+               if not self.latest_build:
+                       return False
 
-               #return version in [build.pkg.version for build in self.builds]
+               # Check if the version is larger than the build
+               with self.backend.pakfire() as p:
+                       # Compare the versions
+                       if p.version_compare(self.latest_build.pkg.evr, version) > 0:
+                               return True
 
-       @property
-       def builds(self):
-               return self.distro.get_builds_by_name(self.name)
+               return False
 
        @lazy_property
        def latest_build(self):