mirror of
https://github.com/odoo/runbot.git
synced 2025-03-27 13:25:47 +07:00
[IMP] runbot: change trigger start logic
and add sequence on project
This commit is contained in:
parent
02eb8014a3
commit
eaf8964701
@ -302,9 +302,8 @@ class Batch(models.Model):
|
|||||||
self.warning('Missing commit for repo %s for trigger %s', (trigger_repos & missing_repos).mapped('name'), trigger.name)
|
self.warning('Missing commit for repo %s for trigger %s', (trigger_repos & missing_repos).mapped('name'), trigger.name)
|
||||||
continue
|
continue
|
||||||
# in any case, search for an existing build
|
# in any case, search for an existing build
|
||||||
|
|
||||||
config = trigger_custom.config_id if trigger_custom else trigger.config_id
|
config = trigger_custom.config_id if trigger_custom else trigger.config_id
|
||||||
if not config:
|
|
||||||
continue
|
|
||||||
extra_params = trigger_custom.extra_params if trigger_custom else ''
|
extra_params = trigger_custom.extra_params if trigger_custom else ''
|
||||||
config_data = trigger_custom.config_data if trigger_custom else {}
|
config_data = trigger_custom.config_data if trigger_custom else {}
|
||||||
params_value = {
|
params_value = {
|
||||||
@ -326,7 +325,10 @@ class Batch(models.Model):
|
|||||||
|
|
||||||
build = self.env['runbot.build']
|
build = self.env['runbot.build']
|
||||||
link_type = 'created'
|
link_type = 'created'
|
||||||
if ((trigger.repo_ids & bundle_repos) or bundle.build_all or bundle.sticky) and not trigger.manual: # only auto link build if bundle has a branch for this trigger
|
force_trigger = trigger_custom and trigger_custom.start_mode == 'force'
|
||||||
|
skip_trigger = (trigger_custom and trigger_custom.start_mode == 'disable') or trigger.manual
|
||||||
|
should_start = ((trigger.repo_ids & bundle_repos) or bundle.build_all or bundle.sticky)
|
||||||
|
if force_trigger or (should_start and not skip_trigger): # only auto link build if bundle has a branch for this trigger
|
||||||
link_type, build = self._create_build(params)
|
link_type, build = self._create_build(params)
|
||||||
self.env['runbot.batch.slot'].create({
|
self.env['runbot.batch.slot'].create({
|
||||||
'batch_id': self.id,
|
'batch_id': self.id,
|
||||||
|
@ -8,6 +8,7 @@ class BundleTriggerCustomization(models.Model):
|
|||||||
_description = 'Custom trigger'
|
_description = 'Custom trigger'
|
||||||
|
|
||||||
trigger_id = fields.Many2one('runbot.trigger')
|
trigger_id = fields.Many2one('runbot.trigger')
|
||||||
|
start_mode = fields.Selection([('disabled', 'Disabled'), ('auto', 'Auto'), ('force', 'Force')], required=True, default='auto')
|
||||||
bundle_id = fields.Many2one('runbot.bundle')
|
bundle_id = fields.Many2one('runbot.bundle')
|
||||||
config_id = fields.Many2one('runbot.build.config')
|
config_id = fields.Many2one('runbot.build.config')
|
||||||
extra_params = fields.Char("Custom parameters")
|
extra_params = fields.Char("Custom parameters")
|
||||||
|
@ -4,6 +4,7 @@ from odoo import models, fields
|
|||||||
class Project(models.Model):
|
class Project(models.Model):
|
||||||
_name = 'runbot.project'
|
_name = 'runbot.project'
|
||||||
_description = 'Project'
|
_description = 'Project'
|
||||||
|
_order = 'sequence, id'
|
||||||
|
|
||||||
name = fields.Char('Project name', required=True)
|
name = fields.Char('Project name', required=True)
|
||||||
group_ids = fields.Many2many('res.groups', string='Required groups')
|
group_ids = fields.Many2many('res.groups', string='Required groups')
|
||||||
@ -11,6 +12,7 @@ class Project(models.Model):
|
|||||||
trigger_ids = fields.One2many('runbot.trigger', 'project_id', string='Triggers')
|
trigger_ids = fields.One2many('runbot.trigger', 'project_id', string='Triggers')
|
||||||
dockerfile_id = fields.Many2one('runbot.dockerfile', index=True, help="Project Default Dockerfile")
|
dockerfile_id = fields.Many2one('runbot.dockerfile', index=True, help="Project Default Dockerfile")
|
||||||
repo_ids = fields.One2many('runbot.repo', 'project_id', string='Repos')
|
repo_ids = fields.One2many('runbot.repo', 'project_id', string='Repos')
|
||||||
|
sequence = fields.Integer('Sequence')
|
||||||
|
|
||||||
|
|
||||||
class Category(models.Model):
|
class Category(models.Model):
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
<field name="dockerfile_id"/>
|
<field name="dockerfile_id"/>
|
||||||
<field name="group_ids"/>
|
<field name="group_ids"/>
|
||||||
<field name="trigger_ids"/>
|
<field name="trigger_ids"/>
|
||||||
|
<field name="sequence"/>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
@ -25,6 +26,7 @@
|
|||||||
<field name="dockerfile_id"/>
|
<field name="dockerfile_id"/>
|
||||||
<field name="group_ids"/>
|
<field name="group_ids"/>
|
||||||
<field name="trigger_ids"/>
|
<field name="trigger_ids"/>
|
||||||
|
<field name="sequence"/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
@ -62,6 +64,7 @@
|
|||||||
</field>
|
</field>
|
||||||
<field string="Trigger customisations" name="trigger_custom_ids">
|
<field string="Trigger customisations" name="trigger_custom_ids">
|
||||||
<tree editable="bottom">
|
<tree editable="bottom">
|
||||||
|
<field name="start_mode"/>
|
||||||
<field name="trigger_id" domain="[('project_id', '=', parent.project_id)]"/>
|
<field name="trigger_id" domain="[('project_id', '=', parent.project_id)]"/>
|
||||||
<field name="config_id"/>
|
<field name="config_id"/>
|
||||||
<field name="extra_params"/>
|
<field name="extra_params"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user