[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.
This commit is contained in:
Xavier-Do 2025-02-19 11:01:39 +01:00 committed by Christophe Monniez
parent 48cd3a7f40
commit 8012b57880
3 changed files with 8 additions and 1 deletions

View File

@ -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,

View File

@ -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")

View File

@ -77,6 +77,7 @@
<field name="trigger_custom_ids" nolabel="1">
<list editable="bottom">
<field name="start_mode"/>
<field name="use_base_commits"/>
<field name="trigger_id" domain="[('project_id', '=', parent.project_id)]"/>
<field name="config_id"/>
<field name="extra_params"/>