loci/.zuul.d/ironic.yaml
Jean-Philippe Evrard baf6a5b524 Always build requirements image in the pipeline
Without this patch, the loci builder automatically consumes a
previously published requirements image when the project is not
"requirements". This also means the first step in checks/gates
for non requirement images would be to pull a requirement.

Currently there is neither a "pipeline" nor consumption of
artifacts between jobs. Which means the "requirements" build
and the other image build have to be considered as independant.

However, by default, the "non-requirements" image built is
consuming previously published "requirements" image, but not
immediately previous built requirements image.

This is a problem, as it leaves us open to a race condition
where a new build of "requirements" and "non-requirements"
can succeed in a commit, but would cause all the next
"non-requirements" builds to fail, as it is possible the
newly published "requirements" to be incompatible with
the next "non-requirements", as they are not tested together.

This should fix the problem by ensuring that "requirements"
are always built and consumed in the "non-requirement"
building process, instead of re-using the previously built
requirements. For this, project needs to be overriden to
build the requirement image, and therefore a new profile
'requirements' was added to the buildargs of the distros.
Requirements repo also needs to be cloned in the gating
environment, and therefore was added to all the required
projects.

This will also allow new branches to be created, as there
would be no need of a previous build and publish
of requirements in the gating.

Change-Id: I093e4dfc0eef03c47d2d029011fdb5429242ae79
2018-10-12 09:53:06 +02:00

28 lines
473 B
YAML

- project:
check:
jobs:
- loci-ironic
gate:
jobs:
- loci-ironic
post:
jobs:
- publish-loci-ironic
- job:
name: loci-ironic
parent: loci-base
vars:
project: ironic
required-projects:
- openstack/loci
- openstack/requirements
- openstack/ironic
- job:
name: publish-loci-ironic
parent: loci-ironic
post-run: playbooks/push.yaml
secrets:
- loci_docker_login