]> git.ipfire.org Git - pbs.git/commitdiff
events: Add releases
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 14 Jun 2023 13:46:04 +0000 (13:46 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 14 Jun 2023 13:46:04 +0000 (13:46 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/events.py
src/templates/events/modules/system-message.html

index 94fec6c8ffed2b56af8fbd174ea387e43491da51..e5028adc8979f21845858dad770063ff161f980d 100644 (file)
@@ -49,6 +49,7 @@ log = logging.getLogger("pbs.events")
 # by_user
 # builder
 # repository
+# release
 # bug
 # error
 # points
@@ -75,6 +76,7 @@ class Events(base.Object):
                                        builds.owner_id AS by_user,
                                        NULL::integer AS builder,
                                        NULL::integer AS repository,
+                                       NULL::integer AS release,
                                        NULL::integer AS bug,
                                        NULL::text AS error,
                                        NULL::integer AS points
@@ -107,6 +109,7 @@ class Events(base.Object):
                                        NULL AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -133,6 +136,7 @@ class Events(base.Object):
                                        builds.deleted_by AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -160,6 +164,7 @@ class Events(base.Object):
                                        builds.deprecated_by AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -188,6 +193,7 @@ class Events(base.Object):
                                        build_comments.user_id AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -214,6 +220,7 @@ class Events(base.Object):
                                        NULL AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -238,6 +245,7 @@ class Events(base.Object):
                                        NULL AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -264,6 +272,7 @@ class Events(base.Object):
                                        build_bugs.added_by AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        build_bugs.bug_id AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -289,6 +298,7 @@ class Events(base.Object):
                                        build_bugs.removed_by AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        build_bugs.bug_id AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -315,6 +325,7 @@ class Events(base.Object):
                                        repository_builds.added_by AS by_user,
                                        NULL AS builder,
                                        repository_builds.repo_id AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -339,6 +350,7 @@ class Events(base.Object):
                                        repository_builds.removed_by AS by_user,
                                        NULL AS builder,
                                        repository_builds.repo_id AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -366,6 +378,7 @@ class Events(base.Object):
                                        build_points.user_id AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        build_points.points AS points
@@ -391,6 +404,7 @@ class Events(base.Object):
                                        NULL AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -423,6 +437,7 @@ class Events(base.Object):
                                        NULL AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -449,6 +464,7 @@ class Events(base.Object):
                                        NULL AS by_user,
                                        jobs.builder_id AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -481,6 +497,7 @@ class Events(base.Object):
                                        NULL AS by_user,
                                        jobs.builder_id AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -513,6 +530,7 @@ class Events(base.Object):
                                        jobs.aborted_by AS by_user,
                                        jobs.builder_id AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -541,6 +559,7 @@ class Events(base.Object):
                                        NULL AS by_user,
                                        jobs.builder_id AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -569,6 +588,7 @@ class Events(base.Object):
                                        NULL AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -597,6 +617,7 @@ class Events(base.Object):
                                        builders.created_by AS by_user,
                                        builders.id AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -621,6 +642,7 @@ class Events(base.Object):
                                        builders.deleted_by AS by_user,
                                        builders.id AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -631,6 +653,88 @@ class Events(base.Object):
 
                                UNION ALL
 
+                               -- Releases Created
+                               SELECT
+                                       'release-created' AS type,
+                                       releases.created_at AS t,
+                                       1 AS priority,
+                                       NULL AS build,
+                                       NULL AS by_build,
+                                       NULL AS build_comment,
+                                       NULL AS build_group,
+                                       NULL AS job,
+                                       NULL AS package_name,
+                                       NULL AS mirror,
+                                       NULL AS user,
+                                       releases.created_by AS by_user,
+                                       NULL AS builder,
+                                       NULL AS repository,
+                                       releases.id AS release,
+                                       NULL AS bug,
+                                       NULL AS error,
+                                       NULL AS points
+                               FROM
+                                       releases
+
+                               UNION ALL
+
+                               -- Releases Deleted
+                               SELECT
+                                       'release-deleted' AS type,
+                                       releases.deleted_at AS t,
+                                       1 AS priority,
+                                       NULL AS build,
+                                       NULL AS by_build,
+                                       NULL AS build_comment,
+                                       NULL AS build_group,
+                                       NULL AS job,
+                                       NULL AS package_name,
+                                       NULL AS mirror,
+                                       NULL AS user,
+                                       releases.deleted_by AS by_user,
+                                       NULL AS builder,
+                                       NULL AS repository,
+                                       releases.id AS release,
+                                       NULL AS bug,
+                                       NULL AS error,
+                                       NULL AS points
+                               FROM
+                                       releases
+                               WHERE
+                                       deleted_at IS NOT NULL
+
+                               UNION ALL
+
+                               -- Releases Released
+                               SELECT
+                                       'release-released' AS type,
+                                       releases.released_at AS t,
+                                       CASE WHEN releases.stable IS TRUE
+                                               THEN 5 ELSE 4 END AS priority,
+                                       NULL AS build,
+                                       NULL AS by_build,
+                                       NULL AS build_comment,
+                                       NULL AS build_group,
+                                       NULL AS job,
+                                       NULL AS package_name,
+                                       NULL AS mirror,
+                                       NULL AS user,
+                                       NULL AS by_user,
+                                       NULL AS builder,
+                                       NULL AS repository,
+                                       releases.id AS release,
+                                       NULL AS bug,
+                                       NULL AS error,
+                                       NULL AS points
+                               FROM
+                                       releases
+                               WHERE
+                                       released_at IS NOT NULL
+                               AND
+                                       released_at <= CURRENT_TIMESTAMP
+
+                               UNION ALL
+
                                -- Mirrors Created
                                SELECT
                                        'mirror-created' AS type,
@@ -647,6 +751,7 @@ class Events(base.Object):
                                        mirrors.created_by AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -671,6 +776,7 @@ class Events(base.Object):
                                        mirrors.deleted_by AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -702,6 +808,7 @@ class Events(base.Object):
                                        NULL AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        mirror_status_changes.error AS error,
                                        NULL AS points
@@ -739,6 +846,7 @@ class Events(base.Object):
                                        release_monitorings.created_by AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -763,6 +871,7 @@ class Events(base.Object):
                                        release_monitorings.deleted_by AS by_user,
                                        NULL AS builder,
                                        NULL AS repository,
+                                       NULL AS release,
                                        NULL AS bug,
                                        NULL AS error,
                                        NULL AS points
@@ -792,6 +901,9 @@ class Events(base.Object):
                        # Mirrors
                        "mirror"        : self.backend.mirrors.get_by_id,
 
+                       # Releases
+                       "release"       : self.backend.distros.releases.get_by_id,
+
                        # Repositories
                        "repository" : self.backend.repos.get_by_id,
 
index f7a82bbe2755ac4f040d9cd8610e06b7bfed549f..a4670e75a0c6754b07bcdf049c776d4b42aee50d 100644 (file)
                                <p class="icon is-large has-text-danger">
                                        <i class="fa-solid fa-2x fa-binoculars"></i>
                                </p>
+                       {% elif event.type == "release-created" %}
+                               <p class="icon is-large has-text-success">
+                                       <i class="fa-solid fa-2x fa-box"></i>
+                               </p>
+                       {% elif event.type == "release-deleted" %}
+                               <p class="icon is-large has-text-danger">
+                                       <i class="fa-solid fa-2x fa-box"></i>
+                               </p>
+                       {% elif event.type == "release-released" %}
+                               <p class="icon is-large has-text-info">
+                                       <i class="fa-solid fa-2x fa-cake-candles"></i>
+                               </p>
                        {% else %}
                                <p class="icon is-large has-text-light">
                                        <i class="fa-solid fa-2x fa-question"></i>
                                        {{ _("Release Monitoring has been enabled for %s") % event.package_name }}
                                {% elif event.type == "release-monitoring-deleted" %}
                                        {{ _("Release Monitoring has been disabled for %s") % event.package_name }}
+                               {% elif event.type == "release-created" %}
+                                       {{ _("Release Created")}}
+                               {% elif event.type == "release-deleted" %}
+                                       {{ _("Release Deleted") }}
+                               {% elif event.type == "release-released" %}
+                                       {{ _("Release of %s") % event.release }}
                                {% else %}
                                        {{ _("- Unknown Event %s -") % event.type }}
                                {% end %}
                                        </a>
                                {% end %}
 
+                               {# Release #}
+                               {% if event.release %}
+                                       <a class="level-item" href="{{ event.release.url }}">
+                                               {{ event.release }}
+                                       </a>
+                               {% end %}
+
                                {# By User #}
                                {% if not event.type == "build-comment" and event.by_user %}
                                        <a class="level-item" href="/users/{{ event.by_user.name }}">