From 2a7e76eec744031c44e857bafe5b85297ab5c99c Mon Sep 17 00:00:00 2001 From: Xavier-Do Date: Wed, 19 Feb 2025 11:01:39 +0100 Subject: [PATCH] [IMP] runbot: custom triger without branch changes This allows to configure a custom trigger to use the base commits. This can be usefull to test a config on a branch that has some changes to ensure it works proprely. --- runbot/models/batch.py | 7 ++++++- runbot/models/custom_trigger.py | 1 + runbot/views/bundle_views.xml | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/runbot/models/batch.py b/runbot/models/batch.py index 70a0f739..3729d0c9 100644 --- a/runbot/models/batch.py +++ b/runbot/models/batch.py @@ -358,6 +358,7 @@ class Batch(models.Model): for commit_link in self.commit_link_ids: commit_link.commit_id = commit_link.commit_id._rebase_on(commit_link.base_commit_id) commit_link_by_repos = {commit_link.commit_id.repo_id.id: commit_link for commit_link in self.commit_link_ids} + base_commit_link_by_repos = {commit_link.commit_id.repo_id.id: commit_link for commit_link in self.base_reference_batch_id.commit_link_ids} version_id = self.bundle_id.version_id.id project_id = self.bundle_id.project_id.id trigger_customs = {} @@ -373,6 +374,10 @@ class Batch(models.Model): config = trigger_custom.config_id or trigger.config_id extra_params = trigger_custom.extra_params or '' config_data = dict(trigger.config_data or {}) | dict(trigger_custom.config_data or {}) + trigger_commit_link_by_repos = commit_link_by_repos + if trigger_custom.use_base_commits and self.base_reference_batch_id: + trigger_commit_link_by_repos = base_commit_link_by_repos + commits_links = [trigger_commit_link_by_repos[repo.id].id for repo in trigger_repos] params_value = { 'version_id': version_id, 'extra_params': extra_params, @@ -380,7 +385,7 @@ class Batch(models.Model): 'project_id': project_id, 'trigger_id': trigger.id, # for future reference and access rights 'config_data': config_data, - 'commit_link_ids': [(6, 0, [commit_link_by_repos[repo.id].id for repo in trigger_repos])], + 'commit_link_ids': [(6, 0, commits_links)], 'modules': bundle.modules, 'dockerfile_id': dockerfile_id, 'create_batch_id': self.id, diff --git a/runbot/models/custom_trigger.py b/runbot/models/custom_trigger.py index 193a1183..4103ab9f 100644 --- a/runbot/models/custom_trigger.py +++ b/runbot/models/custom_trigger.py @@ -9,6 +9,7 @@ class BundleTriggerCustomization(models.Model): trigger_id = fields.Many2one('runbot.trigger') start_mode = fields.Selection([('disabled', 'Disabled'), ('auto', 'Auto'), ('force', 'Force')], required=True, default='auto') + use_base_commits = fields.Boolean("Use base commits", help="Allow to test a trigger without the branch changes", default=False) bundle_id = fields.Many2one('runbot.bundle') config_id = fields.Many2one('runbot.build.config') extra_params = fields.Char("Custom parameters") diff --git a/runbot/views/bundle_views.xml b/runbot/views/bundle_views.xml index 97e3de22..9380efea 100644 --- a/runbot/views/bundle_views.xml +++ b/runbot/views/bundle_views.xml @@ -77,6 +77,7 @@ +