On 7/13/21 1:16 PM, Daniel P. Berrangé wrote: > On Tue, Jul 13, 2021 at 11:25:21AM +0100, Peter Maydell wrote: >> On Mon, 12 Jul 2021 at 16:02, Philippe Mathieu-Daudé <phi...@redhat.com> >> wrote: >>> >>> The following changes since commit bd38ae26cea0d1d6a97f930248df149204c210a2: >>> >>> Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210710' >>> into staging (2021-07-12 11:02:39 +0100) >>> >>> are available in the Git repository at: >>> >>> https://github.com/philmd/qemu.git tags/fw-edk2-20210712 >>> >>> for you to fetch changes up to d1e79210457323b225c369fa00e97577e0d0da95: >>> >>> MAINTAINERS: remove Laszlo Ersek's entries (2021-07-12 16:55:23 +0200) >>> >>> ---------------------------------------------------------------- >>> Patches related to EDK2/OVMF >>> >>> - MAINTAINERS: remove Laszlo Ersek's entries >>> - Introduce X86_FW_OVMF Kconfig symbol >>> - pc_system_ovmf_table_find: Assert that flash was parsed, document >>> >>> ---------------------------------------------------------------- >> >> So, even though this pullreq doesn't seem to be changing gitlab CI >> config, I get a "yaml invalid" failure in the pipeline: >> https://gitlab.com/qemu-project/qemu/-/pipelines/335995843 >> >> "'build-edk2' job needs 'docker-edk2' job but it was not added to the >> pipeline" >> >> Any ideas what that's about? > > The rules for these two jobs are not compatible with the depedency > declared between them. > > The docker-edk2 job is set to exist only when edk2.yml or Dockerfile > are changed: > > docker-edk2: > stage: containers > rules: # Only run this job when the Dockerfile is modified > - changes: > - .gitlab-ci.d/edk2.yml > - .gitlab-ci.d/edk2/Dockerfile > when: always > > > The build-edk2 job is set to exist based on a wide variety of > changes > > build-edk2: > stage: build > needs: ['docker-edk2'] > rules: # Only run this job when ... > - changes: # ... roms/edk2/ is modified (submodule updated) > - roms/edk2/* > when: always > - if: '$CI_COMMIT_REF_NAME =~ /^edk2/' # or the branch/tag starts with > 'edk2' > when: always > - if: '$CI_COMMIT_MESSAGE =~ /edk2/i' # or last commit description > contains 'EDK2' > when: always > > > If those jobs were independant those different sets of conditions > would be ok. The build-edk2 job, however, has a 'needs' clause > adding a depdancy on 'docker-edk2'. > > Given this dependancy, in *EVERY* scenario were 'build-edk2' job > exists, the 'docker-edk2' job *MUST* also exist. This isn't the > case, hence the failed pipeline. > > This can be fixed by taking the 'rules' from 'build-edk2' and > also applying them to 'docker-edk2'.
Thank you for figuring the problem and clearly explaining it! Phil.