diff --git a/runbot/runbot.py b/runbot/runbot.py index caa08fd8..e79161a3 100644 --- a/runbot/runbot.py +++ b/runbot/runbot.py @@ -196,10 +196,12 @@ class runbot_repo(osv.osv): help="Community addon repos which need to be present to run tests."), 'token': fields.char("Github token"), 'group_ids': fields.many2many('res.groups', string='Limited to groups'), + 'job_timeout': fields.integer('Job Timeout (minutes)', required=True), } _defaults = { 'auto': True, 'modules_auto': 'repo', + 'job_timeout': 30, } def domain(self, cr, uid, context=None): @@ -950,8 +952,6 @@ class runbot_build(osv.osv): def schedule(self, cr, uid, ids, context=None): jobs = self.list_jobs() - icp = self.pool['ir.config_parameter'] - timeout = int(icp.get_param(cr, uid, 'runbot.timeout', default=1800)) for build in self.browse(cr, uid, ids, context=context): if build.state == 'pending': @@ -972,6 +972,7 @@ class runbot_build(osv.osv): lock_path = build.path('logs', '%s.lock' % build.job) if locked(lock_path): # kill if overpassed + timeout = build.repo_id.job_timeout * 60 if build.job != jobs[-1] and build.job_time > timeout: build.logger('%s time exceded (%ss)', build.job, build.job_time) build.kill(result='killed') diff --git a/runbot/runbot.xml b/runbot/runbot.xml index 1e73977f..cb4de123 100644 --- a/runbot/runbot.xml +++ b/runbot/runbot.xml @@ -24,6 +24,7 @@ +