From 146564a90a7c4ee6bc111380886e2e1ec1dabe7b Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 6 Sep 2024 13:16:37 +0200 Subject: [PATCH] [FIX] runbot_merge: set staging_end on all terminations Rather than only setting `staging_end` on status change, set it when the staging gets deactivated. This way cancelling a staging (whether explicitely or via a PR update) will also end it, so will a staging timeout, etc..., rather than keep the counter running. Fixes #931 --- runbot_merge/models/pull_requests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runbot_merge/models/pull_requests.py b/runbot_merge/models/pull_requests.py index 4bb2edd3..b4e7047f 100644 --- a/runbot_merge/models/pull_requests.py +++ b/runbot_merge/models/pull_requests.py @@ -2049,6 +2049,7 @@ class Stagings(models.Model): ._trigger(fields.Datetime.to_datetime(timeout)) if vals.get('active') is False: + vals['staging_end'] = fields.Datetime.now() self.env.ref("runbot_merge.staging_cron")._trigger() return super().write(vals) @@ -2141,7 +2142,6 @@ class Stagings(models.Model): s.state = st if s.state != 'pending': self.env.ref("runbot_merge.merge_cron")._trigger() - s.staging_end = fields.Datetime.now() if update_timeout_limit: s.timeout_limit = datetime.datetime.now() + datetime.timedelta(minutes=s.target.project_id.ci_timeout) self.env.ref("runbot_merge.merge_cron")._trigger(s.timeout_limit)