mirror of
https://github.com/odoo/runbot.git
synced 2025-03-27 13:25:47 +07:00
[IMP] allow detection of duplicate builds
This commit is contained in:
parent
5579fae1c8
commit
0ffbc9c30d
@ -157,6 +157,7 @@ class runbot_repo(osv.osv):
|
|||||||
'jobs': fields.char('Jobs'),
|
'jobs': fields.char('Jobs'),
|
||||||
'nginx': fields.boolean('Nginx'),
|
'nginx': fields.boolean('Nginx'),
|
||||||
'auto': fields.boolean('Auto'),
|
'auto': fields.boolean('Auto'),
|
||||||
|
'duplicate_id': fields.many2one('runbot.repo', 'Repository for finding duplicate builds'),
|
||||||
'fallback_id': fields.many2one('runbot.repo', 'Fallback repo'),
|
'fallback_id': fields.many2one('runbot.repo', 'Fallback repo'),
|
||||||
'modules': fields.char("Modules to Install"),
|
'modules': fields.char("Modules to Install"),
|
||||||
'token': fields.char("Github token"),
|
'token': fields.char("Github token"),
|
||||||
@ -439,12 +440,13 @@ class runbot_build(osv.osv):
|
|||||||
'sequence': fields.integer('Sequence'),
|
'sequence': fields.integer('Sequence'),
|
||||||
'result': fields.char('Result'), # ok, ko, warn, skipped, killed
|
'result': fields.char('Result'), # ok, ko, warn, skipped, killed
|
||||||
'pid': fields.integer('Pid'),
|
'pid': fields.integer('Pid'),
|
||||||
'state': fields.char('Status'), # pending, testing, running, done
|
'state': fields.char('Status'), # pending, testing, running, done, duplicate
|
||||||
'job': fields.char('Job'), # job_*
|
'job': fields.char('Job'), # job_*
|
||||||
'job_start': fields.datetime('Job start'),
|
'job_start': fields.datetime('Job start'),
|
||||||
'job_end': fields.datetime('Job end'),
|
'job_end': fields.datetime('Job end'),
|
||||||
'job_time': fields.function(_get_time, type='integer', string='Job time'),
|
'job_time': fields.function(_get_time, type='integer', string='Job time'),
|
||||||
'job_age': fields.function(_get_age, type='integer', string='Job age'),
|
'job_age': fields.function(_get_age, type='integer', string='Job age'),
|
||||||
|
'duplicate_id': fields.many2one('runbot.build', 'Corresponding Build'),
|
||||||
}
|
}
|
||||||
|
|
||||||
_defaults = {
|
_defaults = {
|
||||||
@ -454,7 +456,16 @@ class runbot_build(osv.osv):
|
|||||||
|
|
||||||
def create(self, cr, uid, values, context=None):
|
def create(self, cr, uid, values, context=None):
|
||||||
build_id = super(runbot_build, self).create(cr, uid, values, context=context)
|
build_id = super(runbot_build, self).create(cr, uid, values, context=context)
|
||||||
self.write(cr, uid, [build_id], {'sequence' : build_id}, context=context)
|
extra_info = {'sequence' : build_id}
|
||||||
|
|
||||||
|
for build in self.browse(cr, uid, [build_id]):
|
||||||
|
domain = [('repo_id','=',build.repo_id.duplicate_id.id), ('name', '=', build.name), ('duplicate_id', '=', False)]
|
||||||
|
duplicate_ids = self.search(cr, uid, domain)
|
||||||
|
if len(duplicate_ids):
|
||||||
|
duplicate_id = duplicate_ids[0]
|
||||||
|
extra_info.update({'state': 'duplicate', 'duplicate_id': duplicate_id})
|
||||||
|
self.write(cr, uid, [duplicate_id], {'duplicate_id': build_id})
|
||||||
|
self.write(cr, uid, [build_id], extra_info, context=context)
|
||||||
|
|
||||||
def reset(self, cr, uid, ids, context=None):
|
def reset(self, cr, uid, ids, context=None):
|
||||||
self.write(cr, uid, ids, { 'state' : 'pending' }, context=context)
|
self.write(cr, uid, ids, { 'state' : 'pending' }, context=context)
|
||||||
@ -902,6 +913,10 @@ class RunbotController(http.Controller):
|
|||||||
for branch in branches:
|
for branch in branches:
|
||||||
build_ids = build_obj.search(cr, uid, [('branch_id','=',branch.id)], limit=4)
|
build_ids = build_obj.search(cr, uid, [('branch_id','=',branch.id)], limit=4)
|
||||||
branch.builds = build_obj.browse(cr, uid, build_ids, context=context)
|
branch.builds = build_obj.browse(cr, uid, build_ids, context=context)
|
||||||
|
# # build_ids = [build.id if build.]
|
||||||
|
# for build in build_obj.browse(cr, uid, build_ids, context=context):
|
||||||
|
# if build.state == 'duplicate':
|
||||||
|
# branch.builds
|
||||||
v['branches'].append(branch)
|
v['branches'].append(branch)
|
||||||
|
|
||||||
# stats
|
# stats
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
<field name="jobs"/>
|
<field name="jobs"/>
|
||||||
<field name="nginx"/>
|
<field name="nginx"/>
|
||||||
<field name="fallback_id"/>
|
<field name="fallback_id"/>
|
||||||
|
<field name="duplicate_id"/>
|
||||||
<field name="modules"/>
|
<field name="modules"/>
|
||||||
<field name="token"/>
|
<field name="token"/>
|
||||||
</group>
|
</group>
|
||||||
@ -128,6 +129,7 @@
|
|||||||
<field name="job_end"/>
|
<field name="job_end"/>
|
||||||
<field name="job_time"/>
|
<field name="job_time"/>
|
||||||
<field name="job_age"/>
|
<field name="job_age"/>
|
||||||
|
<field name="duplicate_id"/>
|
||||||
</group>
|
</group>
|
||||||
</sheet>
|
</sheet>
|
||||||
</form>
|
</form>
|
||||||
@ -166,6 +168,7 @@
|
|||||||
<filter string="Testing" domain="[('state','=', 'testing')]"/>
|
<filter string="Testing" domain="[('state','=', 'testing')]"/>
|
||||||
<filter string="Running" domain="[('state','=', 'running')]"/>
|
<filter string="Running" domain="[('state','=', 'running')]"/>
|
||||||
<filter string="Done" domain="[('state','=','done')]"/>
|
<filter string="Done" domain="[('state','=','done')]"/>
|
||||||
|
<filter string="Duplicate" domain="[('state','=', 'duplicate')]"/>
|
||||||
<separator />
|
<separator />
|
||||||
<group expand="0" string="Group By...">
|
<group expand="0" string="Group By...">
|
||||||
<filter string="Repo" domain="[]" context="{'group_by':'repo_id'}"/>
|
<filter string="Repo" domain="[]" context="{'group_by':'repo_id'}"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user