mirror of
https://github.com/odoo/runbot.git
synced 2025-03-27 13:25:47 +07:00
[IMP] runbot: propagate batch to reference builds decision
This commit is contained in:
parent
082ecaafe9
commit
c9e14a86ca
@ -335,7 +335,8 @@ class Batch(models.Model):
|
|||||||
'create_batch_id': self.id,
|
'create_batch_id': self.id,
|
||||||
'used_custom_trigger': bool(trigger_custom),
|
'used_custom_trigger': bool(trigger_custom),
|
||||||
}
|
}
|
||||||
params_value['builds_reference_ids'] = trigger._reference_builds(bundle)
|
|
||||||
|
params_value['builds_reference_ids'] = trigger._reference_builds(self)
|
||||||
|
|
||||||
params = self.env['runbot.build.params'].create(params_value)
|
params = self.env['runbot.build.params'].create(params_value)
|
||||||
|
|
||||||
|
@ -789,9 +789,9 @@ class ConfigStep(models.Model):
|
|||||||
|
|
||||||
return dict(cmd=cmd)
|
return dict(cmd=cmd)
|
||||||
|
|
||||||
def _reference_builds(self, bundle, trigger):
|
def _reference_builds(self, batch, trigger):
|
||||||
upgrade_dumps_trigger_id = trigger.upgrade_dumps_trigger_id
|
upgrade_dumps_trigger_id = trigger.upgrade_dumps_trigger_id
|
||||||
refs_batches = self._reference_batches(bundle, trigger)
|
refs_batches = self._reference_batches(batch, trigger)
|
||||||
refs_builds = refs_batches.mapped('slot_ids').filtered(
|
refs_builds = refs_batches.mapped('slot_ids').filtered(
|
||||||
lambda slot: slot.trigger_id == upgrade_dumps_trigger_id
|
lambda slot: slot.trigger_id == upgrade_dumps_trigger_id
|
||||||
).mapped('build_id')
|
).mapped('build_id')
|
||||||
@ -803,13 +803,14 @@ class ConfigStep(models.Model):
|
|||||||
def _is_upgrade_step(self):
|
def _is_upgrade_step(self):
|
||||||
return self.job_type in ('configure_upgrade', 'configure_upgrade_complement')
|
return self.job_type in ('configure_upgrade', 'configure_upgrade_complement')
|
||||||
|
|
||||||
def _reference_batches(self, bundle, trigger):
|
def _reference_batches(self, batch, trigger):
|
||||||
if self.job_type == 'configure_upgrade_complement':
|
if self.job_type == 'configure_upgrade_complement':
|
||||||
return self._reference_batches_complement(bundle, trigger)
|
return self._reference_batches_complement(batch, trigger)
|
||||||
else:
|
else:
|
||||||
return self._reference_batches_upgrade(bundle, trigger.upgrade_dumps_trigger_id.category_id.id)
|
return self._reference_batches_upgrade(batch, trigger.upgrade_dumps_trigger_id.category_id.id)
|
||||||
|
|
||||||
def _reference_batches_complement(self, bundle, trigger):
|
def _reference_batches_complement(self, batch, trigger):
|
||||||
|
bundle = batch.bundle_id
|
||||||
category_id = trigger.upgrade_dumps_trigger_id.category_id.id
|
category_id = trigger.upgrade_dumps_trigger_id.category_id.id
|
||||||
version = bundle.version_id
|
version = bundle.version_id
|
||||||
next_versions = version.next_major_version_id | version.next_intermediate_version_ids # TODO filter on trigger version
|
next_versions = version.next_major_version_id | version.next_intermediate_version_ids # TODO filter on trigger version
|
||||||
@ -822,10 +823,11 @@ class ConfigStep(models.Model):
|
|||||||
if bundle.version_id in upgrade_complement_step._get_upgrade_source_versions(next_version):
|
if bundle.version_id in upgrade_complement_step._get_upgrade_source_versions(next_version):
|
||||||
target_versions |= next_version
|
target_versions |= next_version
|
||||||
return target_versions.with_context(
|
return target_versions.with_context(
|
||||||
category_id=category_id, project_id=bundle.project_id.id
|
category_id=category_id, project_id=bundle.project_id.id,
|
||||||
).mapped('base_bundle_id').filtered('to_upgrade').mapped('last_done_batch')
|
).mapped('base_bundle_id').filtered('to_upgrade').mapped('last_done_batch')
|
||||||
|
|
||||||
def _reference_batches_upgrade(self, bundle, category_id):
|
def _reference_batches_upgrade(self, batch, category_id):
|
||||||
|
bundle = batch.bundle_id
|
||||||
target_refs_bundles = self.env['runbot.bundle']
|
target_refs_bundles = self.env['runbot.bundle']
|
||||||
upgrade_domain = [('to_upgrade', '=', True), ('project_id', '=', bundle.project_id.id)]
|
upgrade_domain = [('to_upgrade', '=', True), ('project_id', '=', bundle.project_id.id)]
|
||||||
if self.upgrade_to_version_ids:
|
if self.upgrade_to_version_ids:
|
||||||
|
@ -86,12 +86,12 @@ class Trigger(models.Model):
|
|||||||
raise UserError('Upgrade trigger should have a config with step of type Configure Upgrade')
|
raise UserError('Upgrade trigger should have a config with step of type Configure Upgrade')
|
||||||
return upgrade_step
|
return upgrade_step
|
||||||
|
|
||||||
def _reference_builds(self, bundle):
|
def _reference_builds(self, batch):
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
if self.upgrade_step_id: # this is an upgrade trigger, add corresponding builds
|
if self.upgrade_step_id: # this is an upgrade trigger, add corresponding builds
|
||||||
custom_config = next((trigger_custom.config_id for trigger_custom in bundle.trigger_custom_ids if trigger_custom.trigger_id == self), False)
|
custom_config = next((trigger_custom.config_id for trigger_custom in batch.bundle_id.trigger_custom_ids if trigger_custom.trigger_id == self), False)
|
||||||
step = self._upgrade_step_from_config(custom_config) if custom_config else self.upgrade_step_id
|
step = self._upgrade_step_from_config(custom_config) if custom_config else self.upgrade_step_id
|
||||||
refs_builds = step._reference_builds(bundle, self)
|
refs_builds = step._reference_builds(batch, self)
|
||||||
return [(4, b.id) for b in refs_builds]
|
return [(4, b.id) for b in refs_builds]
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user