]> git.ipfire.org Git - pbs.git/commitdiff
packages: Reference commit when imported from source
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 24 May 2023 08:30:44 +0000 (08:30 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 24 May 2023 08:31:50 +0000 (08:31 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/packages.py
src/buildservice/sources.py

index 05dc51e0fb68767bc7f3a35e35c03456ead0a3c0..c372ec257bda4d5f7f11121227cffa866f9cc91b 100644 (file)
@@ -74,7 +74,7 @@ class Packages(base.Object):
                        """, uuid,
                )
 
-       async def create(self, upload, distro=None):
+       async def create(self, upload, distro=None, commit=None):
                """
                        Creates a new package from an uploaded file
                """
@@ -125,6 +125,7 @@ class Packages(base.Object):
                                suggests,
                                size,
                                supported_arches,
+                               commit_id,
                                build_id,
                                build_host,
                                build_time,
@@ -136,7 +137,7 @@ class Packages(base.Object):
                        (
                                %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,
                                %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,
-                               %s, %s, %s, %s, %s
+                               %s, %s, %s, %s, %s, %s
                        )
                        RETURNING *""",
                        package.name,
@@ -158,6 +159,7 @@ class Packages(base.Object):
                        package.suggests,
                        package.installsize,
                        [], # XXX supported arches
+                       commit,
                        None, # package.build_id,
                        package.buildhost,
                        datetime.datetime.fromtimestamp(package.buildtime),
@@ -362,15 +364,11 @@ class Package(base.DataObject):
 
        # Commit
 
-       def get_commit(self):
+       @lazy_property
+       def commit(self):
                if self.data.commit_id:
                        return self.backend.sources.get_commit_by_id(self.data.commit_id)
 
-       def set_commit(self, commit):
-               self._set_attribute("commit_id", commit.id)
-
-       commit = lazy_property(get_commit, set_commit)
-
        # Distro
 
        @property
index 8c28e618e0fd12075be6d91cf44e9381d23bad84..cc18a3e2871eea550efdf0d4c39ecf29a1573780 100644 (file)
@@ -806,8 +806,7 @@ class Job(base.DataObject):
                                upload = await self.backend.uploads.create_from_local(file)
 
                        # Create the package
-                       # XXX reference the commit here?
-                       package = await self.backend.packages.create(upload)
+                       package = await self.backend.packages.create(upload, commit=self.commit)
 
                        # Create a new build (without updating the repository immediately)
                        build = await self.backend.builds.create(