ros-infrastructure / ros_buildfarm

ROS buildfarm based on Docker
Apache License 2.0
83 stars 97 forks source link

trigger-broken-with-non-broken-upstream triggers too many jobs #560

Closed mikaelarguedas closed 6 years ago

mikaelarguedas commented 6 years ago

Noticed this recently when triggering Brel_trigger-broken-with-non-broken-upstream also triggered the arm jobs making Brel_ubv8_trigger-broken-with-non-broken-upstream ineffective.

The issue comes from the fact that we use the view prefix to match the jobs to retrigger.

While the view prefix returns the a specific enough prefix for arm platforms:

>>> common.get_release_binary_view_prefix('bouncy', 'ubv8')
'Bbin_ubv8'

It returns only a very generic prefix when using the default build file:

>>> common.get_release_binary_view_prefix('bouncy', 'default')
'Bbin'

A more specific prefix can be used but is specific to a single target of the build file

>>> common.get_release_binary_view_name('bouncy', 'default', 'ubuntu', 'bionic', 'amd64')
'Bbin_uB64'

We could solve this in several ways, but it depends what is the expected set of job and behaviors we expect (I'll use melodic as an example).

tfoote commented 6 years ago

Yeah, we've been knowingly living with the catchall behavior. But it would be cleaner to be able to trigger only the default buildfile contents, and not chain to the alternative build targets. But so far we're triggering both simultaneously so it doesn't really make a difference.

One other approach would be to have one job per target, and a meta job per buildfile that will just trigger the target specific jobs.