]> git.ipfire.org Git - pbs.git/commitdiff
release monitoring: Implement following stable releases and the latest
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Jun 2023 14:15:56 +0000 (14:15 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Jun 2023 14:15:56 +0000 (14:15 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/releasemonitoring.py
src/templates/monitorings/edit.html

index a85d2710715a0dab97b8272dadc94b9f041df902..9f0c18bf5eda40a09dce64c595e22064ea9e59e5 100644 (file)
@@ -152,7 +152,7 @@ class Monitorings(base.Object):
                )
 
        async def create(self, distro, name, created_by, project_id,
-                       follow="mainline", create_builds=True, check=True):
+                       follow="stable", create_builds=True, check=True):
                monitoring = self._get_monitoring("""
                        INSERT INTO
                                release_monitorings
@@ -321,8 +321,10 @@ class Monitoring(base.DataObject):
                                self._set_attribute_now("last_check_at")
 
                                try:
-                                       if self.follow == "mainline":
-                                               release = await self._follow_mainline(versions)
+                                       if self.follow == "latest":
+                                               release = await self._follow_latest(versions)
+                                       elif self.follow == "stable":
+                                               release = await self._follow_stable(versions)
                                        else:
                                                raise ValueError("Cannot handle follow: %s" % self.follow)
 
@@ -347,9 +349,16 @@ class Monitoring(base.DataObject):
                # Parse the response as JSON and return it
                return database.Row(response)
 
-       async def _follow_mainline(self, versions):
+       async def _follow_stable(self, versions):
                """
-                       This will follow "mainline" i.e. the latest version
+                       This will follow "stable" i.e. the latest stable version
+               """
+               for version in versions.stable_versions:
+                       return await self.create_release(version)
+
+       async def _follow_latest(self, versions):
+               """
+                       This will follow the latest version (including pre-releases)
                """
                return await self.create_release(versions.latest_version)
 
index 251687de5bcf6c010c2bad199db90c32da8fa85c..a207285a9c7ff230ef1f27e86b92ef62d35026f9 100644 (file)
@@ -62,7 +62,6 @@
                                                                <option value="{{ project.id }}">
                                                                        {{ project.name }}
                                                                        - {{ project.homepage or project.ecosystem }}
-                                                                       - {{ project.version }}
                                                                </option>
                                                        {% end %}
                                                </select>
@@ -74,7 +73,8 @@
                        </div>
 
                        {% set follows = {
-                               "mainline" : _("Mainline - Follow the latest releases"),
+                               "stable" : _("Stable - Follow all stable releases"),
+                               "latest" : _("Latest - Follow the latest releases (including pre-releases)"),
                        } %}
 
                        {# Follow #}