post-merge build-artifacts jobs for the same commit have a race condition between different platforms

Description

When a change is merged the build artifacts jobs for all platforms are invoked in parallel by the Gerrit trigger. These jobs in turn invoke the 'deploy-to-experimental' job to move the artifacts into the 'experimental' repos for OST testing.

Various issues arise because of this:

  1. A Fedora build can trigger an OST run before the equivalent EL7 build finishes. This wastes resources on needless OST runs.

  2. A PPC64 build can place 'noarch' artifacts in experimental before the equivalent x86_64 builds are ready. This can cause OST failures.

Because of the PPC64 issue, we have actually disabled publishing into experimental from the PPC64 jobs. Since we now want to move to fully automated production publishing via the experimental flow, we need to fix this.

Activity

Show:

Barak Korren May 3, 2017 at 8:08 AM

Patch merged

Barak Korren April 20, 2017 at 12:09 PM

All intended functionality implemented.

Patch applied to 'master' flows.

Now blocking on code review

Barak Korren April 18, 2017 at 7:44 AM

Working on a patch

Barak Korren April 12, 2017 at 7:20 AM

That will probably require rewriting STC-CI jobs to be 'Jenkins Pipeline' jobs. This may be the long term solution but its is a considerable rewrite, so we are not eager to go down that road just yet. One downside of this is that the project-specific YAML files will probably have to change, unless we also get to implementing OVIRT-1013.

I'm hoping we can find some trick to make "deploy to experimental" figure out there are still some more build jobs for the same commit running and wait for them. We will probably need to rewrite it too, but I'm thinking this may be a simpler and less visible rewrite then for 'build artifacts'. I may be wrong about that though.

Sandro Bonazzola April 12, 2017 at 7:01 AM

can we change stdci to have a single build job that trigger all the different distro/arch builds, wait until they finishes and then finish with success if all succeeded and trigger the deploy job?
This is valid for all projects, not only vdsm. It doesn't make sense to have different versions/builds available for different arches/distro.

Fixed

Details

Assignee

Reporter

Blocked By

Components

Priority

Created April 12, 2017 at 6:53 AM
Updated July 12, 2017 at 11:57 AM
Resolved May 3, 2017 at 8:08 AM