mirror of
https://github.com/odoo/runbot.git
synced 2025-03-27 13:25:47 +07:00
[IMP] runbot: add priority field on branch
This commit permits to prioritize a branch when scheduling builds. It's main purpose is for the runbot_merge module. It avoids to have staging branches as sticky and pollutes the main repo view. Also, that branch can benefit of the autokill feature when a newer build is found, freeing ressources for other builds. Closes #43
This commit is contained in:
parent
a1384b3868
commit
070dbee204
@ -6,7 +6,7 @@
|
|||||||
'author': "Odoo SA",
|
'author': "Odoo SA",
|
||||||
'website': "http://runbot.odoo.com",
|
'website': "http://runbot.odoo.com",
|
||||||
'category': 'Website',
|
'category': 'Website',
|
||||||
'version': '2.2',
|
'version': '2.3',
|
||||||
'depends': ['website', 'base'],
|
'depends': ['website', 'base'],
|
||||||
'data': [
|
'data': [
|
||||||
'security/runbot_security.xml',
|
'security/runbot_security.xml',
|
||||||
|
@ -25,7 +25,7 @@ class runbot_branch(models.Model):
|
|||||||
state = fields.Char('Status')
|
state = fields.Char('Status')
|
||||||
modules = fields.Char("Modules to Install", help="Comma-separated list of modules to install and test.")
|
modules = fields.Char("Modules to Install", help="Comma-separated list of modules to install and test.")
|
||||||
job_timeout = fields.Integer('Job Timeout (minutes)', help='For default timeout: Mark it zero')
|
job_timeout = fields.Integer('Job Timeout (minutes)', help='For default timeout: Mark it zero')
|
||||||
# test_tags = fields.Char("Test tags", help="Tags for the --test-tags params (same syntax)") # keep for next version
|
priority = fields.Boolean('Build priority', default=False)
|
||||||
|
|
||||||
@api.depends('name')
|
@api.depends('name')
|
||||||
def _get_branch_name(self):
|
def _get_branch_name(self):
|
||||||
|
@ -261,9 +261,9 @@ class runbot_repo(models.Model):
|
|||||||
|
|
||||||
while testing < workers and pending > 0:
|
while testing < workers and pending > 0:
|
||||||
|
|
||||||
# find sticky pending build if any, otherwise, last pending (by id, not by sequence) will do the job
|
# find sticky / priority pending build if any, otherwise, last pending (by id, not by sequence) will do the job
|
||||||
|
|
||||||
pending_ids = Build.search(domain + [('state', '=', 'pending'), ('branch_id.sticky', '=', True)], limit=1)
|
pending_ids = Build.search(domain + [('state', '=', 'pending'), '|', ('branch_id.sticky', '=', True), ('branch_id.priority', '=', True)], limit=1)
|
||||||
if not pending_ids:
|
if not pending_ids:
|
||||||
pending_ids = Build.search(domain + [('state', '=', 'pending')], order="sequence", limit=1)
|
pending_ids = Build.search(domain + [('state', '=', 'pending')], order="sequence", limit=1)
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
<field name="branch_url"/>
|
<field name="branch_url"/>
|
||||||
<field name="pull_head_name"/>
|
<field name="pull_head_name"/>
|
||||||
<field name="sticky"/>
|
<field name="sticky"/>
|
||||||
|
<field name="priority"/>
|
||||||
<field name="coverage"/>
|
<field name="coverage"/>
|
||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
<field name="modules"/>
|
<field name="modules"/>
|
||||||
@ -37,6 +38,7 @@
|
|||||||
<field name="repo_id"/>
|
<field name="repo_id"/>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="sticky"/>
|
<field name="sticky"/>
|
||||||
|
<field name="priority"/>
|
||||||
<field name="coverage"/>
|
<field name="coverage"/>
|
||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
</tree>
|
</tree>
|
||||||
@ -57,4 +59,4 @@
|
|||||||
action="open_view_branch_tree"
|
action="open_view_branch_tree"
|
||||||
/>
|
/>
|
||||||
</data>
|
</data>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
Loading…
Reference in New Issue
Block a user