On Wed, May 07, 2025 at 12:58:34PM -0300, Fabiano Rosas wrote: > Stefan reports that during QEMU release, pushing a series with the > VERSION bump commit, but not pushing the new git tag in the same > command will cause a failure of the build-previous-qemu job at the git > fetch step. > > Since the job is intended to produce a build of the previous QEMU > version for consumption by the migration-compat-* jobs, there's no > reason to produce a build of the release commit because the migration > job would end up testing the release against itself. > > Skip the job when VERSION contains the newly release version number. > > I'm opting for 'exit 0' for both the build and the test jobs because > allow_failure would mask any real error in the jobs. It also avoids > having an orange ! on every release pipeline. > > Reported-by: Stefan Hajnoczi <stefa...@redhat.com> > Signed-off-by: Fabiano Rosas <faro...@suse.de>
This is better than before for sure: Reviewed-by: Peter Xu <pet...@redhat.com> Though nitpicks below. > --- > .gitlab-ci.d/buildtest.yml | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml > index ccf69fb8dd..159bdde2e8 100644 > --- a/.gitlab-ci.d/buildtest.yml > +++ b/.gitlab-ci.d/buildtest.yml > @@ -203,6 +203,11 @@ build-previous-qemu: > GIT_FETCH_EXTRA_FLAGS: --prune --quiet > before_script: > - source scripts/ci/gitlab-ci-section > + # Skip if this series contains the release bump commit. During the > + # release process there might be a window of commits when the > + # version tag is not yet present in the remote and git fetch would > + # fail. > + - if grep -q "\.0$" VERSION; then exit 0; fi > - export QEMU_PREV_VERSION="$(sed 's/\([0-9.]*\)\.[0-9]*/v\1.0/' > VERSION)" > - git remote add upstream https://gitlab.com/qemu-project/qemu > - git fetch upstream > refs/tags/$QEMU_PREV_VERSION:refs/tags/$QEMU_PREV_VERSION > @@ -226,7 +231,8 @@ build-previous-qemu: > # Use the migration-tests from the older QEMU tree. This avoids > # testing an old QEMU against new features/tests that it is not > # compatible with. > - - cd build-previous > + # Skip if build-previous-qemu has failed. This is inaccurate? As this job could only run if the dependent job succeeded IIUC (aka, exit 0 means success). Meanwhile.. > + - cd build-previous || exit 0 .. It'll be nice if we could still fail this job if something wrong happened in build-previous.. Maybe it's clearer we check .0 here too? It's oneliner so we could dup it I guess. I wished the CI jobs can have nested "rules:".. > # old to new > - QTEST_QEMU_BINARY_SRC=./qemu-system-${TARGET} > QTEST_QEMU_BINARY=../build/qemu-system-${TARGET} > ./tests/qtest/migration-test > -- > 2.35.3 > -- Peter Xu