Message ID | 20200203032328.12051-2-crosa@redhat.com |
---|---|
State | New |
Headers | show |
Series | [RFC,1/2] GitLab CI: avoid calling before_scripts on unintended jobs | expand |
Hi Cleber, On 2/3/20 1:23 AM, Cleber Rosa wrote: > This is a crude and straightforward mapping of Peter's > "remake-merge-builds" and "pull-buildtest" scripts. > > Some characteristics were removed for simplicity sake (but eventually > will), including: > * number of simultaneous make jobs > * make's synchronous output, not needed because of previous point > * out-of-tree builds > > This covers the "x86-64 Linux with a variety of different build > configs"[1]. I've personally tested all of them, and only had > issues with the "notcg" job[2], but it seems to be a test specific > issue with the nested KVM I was using. Could you put a comment in the commit text or in-code explaining why it builds QEMU with --disable-libssh on all the jobs? > > [1] - https://wiki.qemu.org/Requirements/GatingCI#Current_Tests > [2] - https://paste.centos.org/view/1dd43a1c > > Signed-off-by: Cleber Rosa <crosa@redhat.com> > --- > .gitlab-ci.yml | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 116 insertions(+) > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > index d2c7d2198e..eb4077e2ab 100644 > --- a/.gitlab-ci.yml > +++ b/.gitlab-ci.yml > @@ -2,6 +2,8 @@ include: > - local: '/.gitlab-ci-edk2.yml' > > build-system1: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: &before_scr_apt > - apt-get update -qq > - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev genisoimage > @@ -17,6 +19,8 @@ build-system1: > - make -j2 check > > build-system2: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -31,6 +35,8 @@ build-system2: > - make -j2 check > > build-disabled: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -47,6 +53,8 @@ build-disabled: > - make -j2 check-qtest SPEED=slow > > build-tcg-disabled: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -67,6 +75,8 @@ build-tcg-disabled: > 248 250 254 255 256 > > build-user: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -78,6 +88,8 @@ build-user: > - make run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user > > build-clang: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -92,6 +104,8 @@ build-clang: > - make -j2 check > > build-tci: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -111,3 +125,105 @@ build-tci: > - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" ./tests/qtest/pxe-test > - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x" > ./tests/qtest/pxe-test -m slow > + > +ubuntu-18.04.3-x86_64-notools: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n22 > + - ./configure --target-list=arm-softmmu --disable-tools --disable-libssh > + # There is no make / make check in the "pull-buildtest" script for this. > + # Question: should it at least be built? Or dropped? > + - make > + > +ubuntu-18.04.3-x86_64-all-linux-static: Doesn't it need to LD_PRELOAD on this runner too? -> |https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n24 | > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n25 > + - ./configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh Shouldn't it --disable-gnutls instead of --disable-glusterfs? > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n36 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n45 > + - make check V=1 > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n48 > + - make check-tcg V=1 Any special reason to split it in 3 steps instead of a single `make check check-tcg`? That pattern continues on next jobs... > + > +ubuntu-18.04.3-x86_64-all: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n26 > + - ./configure --disable-libssh > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n28 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 > + - make check V=1 > + > +ubuntu-18.04.3-x86_64-alldbg: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n27 > + - ./configure --disable-libssh Missing --enable-debug, right? > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n27 > + - make clean > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n29 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 > + - make check V=1 > + > +ubuntu-18.04.3-x86_64-clang: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n31 > + - ./configure --disable-libssh --cc=clang --cxx=clang++ --enable-gtk --extra-cflags='-fsanitize=undefined -fno-sanitize=shift-base -Werror' > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n33 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 > + - make check V=1 > + > +ubuntu-18.04.3-x86_64-tci: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n33 > + - ./configure --disable-libssh --enable-debug --enable-tcg-interpreter > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n34 > + - make Would make sense to add a commented `make check` entry as well? https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n40 > + > +ubuntu-18.04.3-x86_64-notcg: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n35 > + - ./configure --disable-libssh --enable-debug --disable-tcg > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n35 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 > + # Question: check is disabled on the original script, because the machine > + # is said to be running VirtualBox. Should this be dropped or should the > + # machine be tweaked or substituted? > + - make check V=1
On 2/3/20 4:23 AM, Cleber Rosa wrote: > This is a crude and straightforward mapping of Peter's > "remake-merge-builds" and "pull-buildtest" scripts. > > Some characteristics were removed for simplicity sake (but eventually > will), including: > * number of simultaneous make jobs > * make's synchronous output, not needed because of previous point > * out-of-tree builds > > This covers the "x86-64 Linux with a variety of different build > configs"[1]. I've personally tested all of them, and only had > issues with the "notcg" job[2], but it seems to be a test specific > issue with the nested KVM I was using. > > [1] - https://wiki.qemu.org/Requirements/GatingCI#Current_Tests > [2] - https://paste.centos.org/view/1dd43a1c > > Signed-off-by: Cleber Rosa <crosa@redhat.com> > --- > .gitlab-ci.yml | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 116 insertions(+) > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > index d2c7d2198e..eb4077e2ab 100644 > --- a/.gitlab-ci.yml > +++ b/.gitlab-ci.yml > @@ -2,6 +2,8 @@ include: > - local: '/.gitlab-ci-edk2.yml' > > build-system1: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: &before_scr_apt > - apt-get update -qq > - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev genisoimage > @@ -17,6 +19,8 @@ build-system1: > - make -j2 check > > build-system2: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -31,6 +35,8 @@ build-system2: > - make -j2 check > > build-disabled: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -47,6 +53,8 @@ build-disabled: > - make -j2 check-qtest SPEED=slow > > build-tcg-disabled: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -67,6 +75,8 @@ build-tcg-disabled: > 248 250 254 255 256 > > build-user: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -78,6 +88,8 @@ build-user: > - make run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user > > build-clang: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -92,6 +104,8 @@ build-clang: > - make -j2 check > > build-tci: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -111,3 +125,105 @@ build-tci: > - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" ./tests/qtest/pxe-test > - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x" > ./tests/qtest/pxe-test -m slow > + > +ubuntu-18.04.3-x86_64-notools: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n22 > + - ./configure --target-list=arm-softmmu --disable-tools --disable-libssh > + # There is no make / make check in the "pull-buildtest" script for this. > + # Question: should it at least be built? Or dropped? > + - make > + > +ubuntu-18.04.3-x86_64-all-linux-static: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n25 > + - ./configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n36 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n45 > + - make check V=1 > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n48 > + - make check-tcg V=1 > + > +ubuntu-18.04.3-x86_64-all: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n26 > + - ./configure --disable-libssh > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n28 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 > + - make check V=1 > + > +ubuntu-18.04.3-x86_64-alldbg: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n27 > + - ./configure --disable-libssh > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n27 > + - make clean > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n29 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 > + - make check V=1 > + > +ubuntu-18.04.3-x86_64-clang: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n31 > + - ./configure --disable-libssh --cc=clang --cxx=clang++ --enable-gtk --extra-cflags='-fsanitize=undefined -fno-sanitize=shift-base -Werror' > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n33 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 > + - make check V=1 > + > +ubuntu-18.04.3-x86_64-tci: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n33 > + - ./configure --disable-libssh --enable-debug --enable-tcg-interpreter > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n34 > + - make > + > +ubuntu-18.04.3-x86_64-notcg: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n35 > + - ./configure --disable-libssh --enable-debug --disable-tcg > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n35 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 > + # Question: check is disabled on the original script, because the machine > + # is said to be running VirtualBox. Should this be dropped or should the > + # machine be tweaked or substituted? > + - make check V=1 On another thread Thomas said he doesn't want to be responsible of other tests: https://www.mail-archive.com/qemu-devel@nongnu.org/msg670132.html We could move the set of tests converted from Peter personal testsuite into a separate YAML, so the interested (you Cleber, and Peter) can have a F: entry in MAINTAINERS for it: include: - local: '/.gitlab-ci-pm215.yml'
On 2/6/20 2:03 PM, Philippe Mathieu-Daudé wrote: > On 2/3/20 4:23 AM, Cleber Rosa wrote: >> This is a crude and straightforward mapping of Peter's >> "remake-merge-builds" and "pull-buildtest" scripts. >> >> Some characteristics were removed for simplicity sake (but eventually >> will), including: >> * number of simultaneous make jobs >> * make's synchronous output, not needed because of previous point >> * out-of-tree builds >> >> This covers the "x86-64 Linux with a variety of different build >> configs"[1]. I've personally tested all of them, and only had >> issues with the "notcg" job[2], but it seems to be a test specific >> issue with the nested KVM I was using. >> >> [1] - https://wiki.qemu.org/Requirements/GatingCI#Current_Tests >> [2] - https://paste.centos.org/view/1dd43a1c >> >> Signed-off-by: Cleber Rosa <crosa@redhat.com> >> --- >> .gitlab-ci.yml | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 116 insertions(+) >> >> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml >> index d2c7d2198e..eb4077e2ab 100644 >> --- a/.gitlab-ci.yml >> +++ b/.gitlab-ci.yml >> @@ -2,6 +2,8 @@ include: >> - local: '/.gitlab-ci-edk2.yml' >> build-system1: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: &before_scr_apt >> - apt-get update -qq >> - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev >> genisoimage >> @@ -17,6 +19,8 @@ build-system1: >> - make -j2 check >> build-system2: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -31,6 +35,8 @@ build-system2: >> - make -j2 check >> build-disabled: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -47,6 +53,8 @@ build-disabled: >> - make -j2 check-qtest SPEED=slow >> build-tcg-disabled: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -67,6 +75,8 @@ build-tcg-disabled: >> 248 250 254 255 256 >> build-user: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -78,6 +88,8 @@ build-user: >> - make run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user >> build-clang: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -92,6 +104,8 @@ build-clang: >> - make -j2 check >> build-tci: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -111,3 +125,105 @@ build-tci: >> - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" >> ./tests/qtest/pxe-test >> - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x" >> ./tests/qtest/pxe-test -m slow >> + >> +ubuntu-18.04.3-x86_64-notools: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n22 >> >> + - ./configure --target-list=arm-softmmu --disable-tools >> --disable-libssh >> + # There is no make / make check in the "pull-buildtest" script for >> this. >> + # Question: should it at least be built? Or dropped? >> + - make >> + >> +ubuntu-18.04.3-x86_64-all-linux-static: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n25 >> >> + - ./configure --enable-debug --static --disable-system >> --disable-glusterfs --disable-libssh >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n36 >> >> + - make >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n45 >> >> + - make check V=1 >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n48 >> >> + - make check-tcg V=1 >> + >> +ubuntu-18.04.3-x86_64-all: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n26 >> >> + - ./configure --disable-libssh >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n28 >> >> + - make >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 >> >> + - make check V=1 >> + >> +ubuntu-18.04.3-x86_64-alldbg: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n27 >> >> + - ./configure --disable-libssh >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n27 >> >> + - make clean >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n29 >> >> + - make >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 >> >> + - make check V=1 >> + >> +ubuntu-18.04.3-x86_64-clang: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n31 >> >> + - ./configure --disable-libssh --cc=clang --cxx=clang++ --enable-gtk >> --extra-cflags='-fsanitize=undefined -fno-sanitize=shift-base -Werror' >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n33 >> >> + - make >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 >> >> + - make check V=1 >> + >> +ubuntu-18.04.3-x86_64-tci: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n33 >> >> + - ./configure --disable-libssh --enable-debug --enable-tcg-interpreter >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n34 >> >> + - make >> + >> +ubuntu-18.04.3-x86_64-notcg: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n35 >> >> + - ./configure --disable-libssh --enable-debug --disable-tcg >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n35 >> >> + - make >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 >> >> + # Question: check is disabled on the original script, because the >> machine >> + # is said to be running VirtualBox. Should this be dropped or >> should the >> + # machine be tweaked or substituted? >> + - make check V=1 > > On another thread Thomas said he doesn't want to be responsible of other > tests: > https://www.mail-archive.com/qemu-devel@nongnu.org/msg670132.html > > We could move the set of tests converted from Peter personal testsuite > into a separate YAML, so the interested (you Cleber, and Peter) can have > a F: entry in MAINTAINERS for it: > > include: > - local: '/.gitlab-ci-pm215.yml' I'm not calling this file "pm215" because Peter owns it, but because it would contains all the tests Peter was running manually before we use GitLab as a gating CI.
On 2/6/20 11:03 AM, Philippe Mathieu-Daudé wrote: > On 2/3/20 4:23 AM, Cleber Rosa wrote: >> This is a crude and straightforward mapping of Peter's >> "remake-merge-builds" and "pull-buildtest" scripts. >> >> Some characteristics were removed for simplicity sake (but eventually >> will), including: >> * number of simultaneous make jobs >> * make's synchronous output, not needed because of previous point >> * out-of-tree builds >> >> This covers the "x86-64 Linux with a variety of different build >> configs"[1]. I've personally tested all of them, and only had >> issues with the "notcg" job[2], but it seems to be a test specific >> issue with the nested KVM I was using. >> >> [1] - https://wiki.qemu.org/Requirements/GatingCI#Current_Tests >> [2] - https://paste.centos.org/view/1dd43a1c >> >> Signed-off-by: Cleber Rosa <crosa@redhat.com> >> --- >> .gitlab-ci.yml | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 116 insertions(+) >> >> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml >> index d2c7d2198e..eb4077e2ab 100644 >> --- a/.gitlab-ci.yml >> +++ b/.gitlab-ci.yml >> @@ -2,6 +2,8 @@ include: >> - local: '/.gitlab-ci-edk2.yml' >> build-system1: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: &before_scr_apt >> - apt-get update -qq >> - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev >> genisoimage >> @@ -17,6 +19,8 @@ build-system1: >> - make -j2 check >> build-system2: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -31,6 +35,8 @@ build-system2: >> - make -j2 check >> build-disabled: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -47,6 +53,8 @@ build-disabled: >> - make -j2 check-qtest SPEED=slow >> build-tcg-disabled: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -67,6 +75,8 @@ build-tcg-disabled: >> 248 250 254 255 256 >> build-user: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -78,6 +88,8 @@ build-user: >> - make run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user >> build-clang: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -92,6 +104,8 @@ build-clang: >> - make -j2 check >> build-tci: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -111,3 +125,105 @@ build-tci: >> - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" >> ./tests/qtest/pxe-test >> - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x" >> ./tests/qtest/pxe-test -m slow >> + >> +ubuntu-18.04.3-x86_64-notools: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n22 >> + - ./configure --target-list=arm-softmmu --disable-tools >> --disable-libssh >> + # There is no make / make check in the "pull-buildtest" script for >> this. >> + # Question: should it at least be built? Or dropped? >> + - make >> + >> +ubuntu-18.04.3-x86_64-all-linux-static: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n25 >> + - ./configure --enable-debug --static --disable-system >> --disable-glusterfs --disable-libssh >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n36 >> + - make >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n45 >> + - make check V=1 >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n48 >> + - make check-tcg V=1 >> + >> +ubuntu-18.04.3-x86_64-all: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n26 >> + - ./configure --disable-libssh >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n28 >> + - make >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 >> + - make check V=1 >> + >> +ubuntu-18.04.3-x86_64-alldbg: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n27 >> + - ./configure --disable-libssh >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n27 >> + - make clean >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n29 >> + - make >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 >> + - make check V=1 >> + >> +ubuntu-18.04.3-x86_64-clang: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n31 >> + - ./configure --disable-libssh --cc=clang --cxx=clang++ >> --enable-gtk --extra-cflags='-fsanitize=undefined >> -fno-sanitize=shift-base -Werror' >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n33 >> + - make >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 >> + - make check V=1 >> + >> +ubuntu-18.04.3-x86_64-tci: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n33 >> + - ./configure --disable-libssh --enable-debug --enable-tcg-interpreter >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n34 >> + - make >> + >> +ubuntu-18.04.3-x86_64-notcg: >> + tags: >> + - ubuntu_18.04.3 >> + - x86_64 >> + rules: >> + - if: '$CI_COMMIT_REF_NAME == "staging"' >> + script: >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n35 >> + - ./configure --disable-libssh --enable-debug --disable-tcg >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n35 >> + - make >> + # >> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 >> + # Question: check is disabled on the original script, because the >> machine >> + # is said to be running VirtualBox. Should this be dropped or >> should the >> + # machine be tweaked or substituted? >> + - make check V=1 > > On another thread Thomas said he doesn't want to be responsible of > other tests: > https://www.mail-archive.com/qemu-devel@nongnu.org/msg670132.html > > We could move the set of tests converted from Peter personal testsuite > into a separate YAML, so the interested (you Cleber, and Peter) can > have a F: entry in MAINTAINERS for it: I like that idea. > > > include: > - local: '/.gitlab-ci-pm215.yml' If so, I suggest moving the file to the .gitlab-ci.d directory instead. Likewise the .gitlab-ci-edk2.yml file. This way the sources root directory does not get infested of GitLab files. Thanks, Wainer > > >
On 2/6/20 2:52 PM, Wainer dos Santos Moschetta wrote: > On 2/6/20 11:03 AM, Philippe Mathieu-Daudé wrote: >> On 2/3/20 4:23 AM, Cleber Rosa wrote: >>> This is a crude and straightforward mapping of Peter's >>> "remake-merge-builds" and "pull-buildtest" scripts. >>> >>> Some characteristics were removed for simplicity sake (but eventually >>> will), including: >>> * number of simultaneous make jobs >>> * make's synchronous output, not needed because of previous point >>> * out-of-tree builds >>> >>> This covers the "x86-64 Linux with a variety of different build >>> configs"[1]. I've personally tested all of them, and only had >>> issues with the "notcg" job[2], but it seems to be a test specific >>> issue with the nested KVM I was using. >>> >>> [1] - https://wiki.qemu.org/Requirements/GatingCI#Current_Tests >>> [2] - https://paste.centos.org/view/1dd43a1c >>> >>> Signed-off-by: Cleber Rosa <crosa@redhat.com> >>> --- >>> .gitlab-ci.yml | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ >>> 1 file changed, 116 insertions(+) >>> >>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml >>> index d2c7d2198e..eb4077e2ab 100644 >>> --- a/.gitlab-ci.yml >>> +++ b/.gitlab-ci.yml >>> @@ -2,6 +2,8 @@ include: >>> - local: '/.gitlab-ci-edk2.yml' >>> build-system1: >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>> before_script: &before_scr_apt >>> - apt-get update -qq >>> - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev >>> genisoimage >>> @@ -17,6 +19,8 @@ build-system1: >>> - make -j2 check >>> build-system2: >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>> before_script: >>> *before_scr_apt >>> script: >>> @@ -31,6 +35,8 @@ build-system2: >>> - make -j2 check >>> build-disabled: >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>> before_script: >>> *before_scr_apt >>> script: >>> @@ -47,6 +53,8 @@ build-disabled: >>> - make -j2 check-qtest SPEED=slow >>> build-tcg-disabled: >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>> before_script: >>> *before_scr_apt >>> script: >>> @@ -67,6 +75,8 @@ build-tcg-disabled: >>> 248 250 254 255 256 >>> build-user: >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>> before_script: >>> *before_scr_apt >>> script: >>> @@ -78,6 +88,8 @@ build-user: >>> - make run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user >>> build-clang: >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>> before_script: >>> *before_scr_apt >>> script: >>> @@ -92,6 +104,8 @@ build-clang: >>> - make -j2 check >>> build-tci: >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>> before_script: >>> *before_scr_apt >>> script: >>> @@ -111,3 +125,105 @@ build-tci: >>> - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" >>> ./tests/qtest/pxe-test >>> - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x" >>> ./tests/qtest/pxe-test -m slow >>> + >>> +ubuntu-18.04.3-x86_64-notools: >>> + tags: >>> + - ubuntu_18.04.3 >>> + - x86_64 >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>> + script: >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n22 >>> >>> + - ./configure --target-list=arm-softmmu --disable-tools >>> --disable-libssh >>> + # There is no make / make check in the "pull-buildtest" script for >>> this. >>> + # Question: should it at least be built? Or dropped? >>> + - make >>> + >>> +ubuntu-18.04.3-x86_64-all-linux-static: >>> + tags: >>> + - ubuntu_18.04.3 >>> + - x86_64 >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>> + script: >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n25 >>> >>> + - ./configure --enable-debug --static --disable-system >>> --disable-glusterfs --disable-libssh >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n36 >>> >>> + - make >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n45 >>> >>> + - make check V=1 >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n48 >>> >>> + - make check-tcg V=1 >>> + >>> +ubuntu-18.04.3-x86_64-all: >>> + tags: >>> + - ubuntu_18.04.3 >>> + - x86_64 >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>> + script: >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n26 >>> >>> + - ./configure --disable-libssh >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n28 >>> >>> + - make >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 >>> >>> + - make check V=1 >>> + >>> +ubuntu-18.04.3-x86_64-alldbg: >>> + tags: >>> + - ubuntu_18.04.3 >>> + - x86_64 >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>> + script: >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n27 >>> >>> + - ./configure --disable-libssh >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n27 >>> >>> + - make clean >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n29 >>> >>> + - make >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 >>> >>> + - make check V=1 >>> + >>> +ubuntu-18.04.3-x86_64-clang: >>> + tags: >>> + - ubuntu_18.04.3 >>> + - x86_64 >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>> + script: >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n31 >>> >>> + - ./configure --disable-libssh --cc=clang --cxx=clang++ >>> --enable-gtk --extra-cflags='-fsanitize=undefined >>> -fno-sanitize=shift-base -Werror' >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n33 >>> >>> + - make >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 >>> >>> + - make check V=1 >>> + >>> +ubuntu-18.04.3-x86_64-tci: >>> + tags: >>> + - ubuntu_18.04.3 >>> + - x86_64 >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>> + script: >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n33 >>> >>> + - ./configure --disable-libssh --enable-debug --enable-tcg-interpreter >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n34 >>> >>> + - make >>> + >>> +ubuntu-18.04.3-x86_64-notcg: >>> + tags: >>> + - ubuntu_18.04.3 >>> + - x86_64 >>> + rules: >>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>> + script: >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n35 >>> >>> + - ./configure --disable-libssh --enable-debug --disable-tcg >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n35 >>> >>> + - make >>> + # >>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 >>> >>> + # Question: check is disabled on the original script, because the >>> machine >>> + # is said to be running VirtualBox. Should this be dropped or >>> should the >>> + # machine be tweaked or substituted? >>> + - make check V=1 >> >> On another thread Thomas said he doesn't want to be responsible of >> other tests: >> https://www.mail-archive.com/qemu-devel@nongnu.org/msg670132.html >> >> We could move the set of tests converted from Peter personal testsuite >> into a separate YAML, so the interested (you Cleber, and Peter) can >> have a F: entry in MAINTAINERS for it: > > > I like that idea. > > >> >> >> include: >> - local: '/.gitlab-ci-pm215.yml' > > > If so, I suggest moving the file to the .gitlab-ci.d directory instead. > Likewise the .gitlab-ci-edk2.yml file. This way the sources root > directory does not get infested of GitLab files. Yes, +1. I'm pretty sure Thomas will like that too.
On 06/02/2020 14.54, Philippe Mathieu-Daudé wrote: > On 2/6/20 2:52 PM, Wainer dos Santos Moschetta wrote: >> On 2/6/20 11:03 AM, Philippe Mathieu-Daudé wrote: >>> On 2/3/20 4:23 AM, Cleber Rosa wrote: >>>> This is a crude and straightforward mapping of Peter's >>>> "remake-merge-builds" and "pull-buildtest" scripts. >>>> >>>> Some characteristics were removed for simplicity sake (but eventually >>>> will), including: >>>> * number of simultaneous make jobs >>>> * make's synchronous output, not needed because of previous point >>>> * out-of-tree builds >>>> >>>> This covers the "x86-64 Linux with a variety of different build >>>> configs"[1]. I've personally tested all of them, and only had >>>> issues with the "notcg" job[2], but it seems to be a test specific >>>> issue with the nested KVM I was using. >>>> >>>> [1] - https://wiki.qemu.org/Requirements/GatingCI#Current_Tests >>>> [2] - https://paste.centos.org/view/1dd43a1c >>>> >>>> Signed-off-by: Cleber Rosa <crosa@redhat.com> >>>> --- >>>> .gitlab-ci.yml | 116 >>>> +++++++++++++++++++++++++++++++++++++++++++++++++ >>>> 1 file changed, 116 insertions(+) >>>> >>>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml >>>> index d2c7d2198e..eb4077e2ab 100644 >>>> --- a/.gitlab-ci.yml >>>> +++ b/.gitlab-ci.yml >>>> @@ -2,6 +2,8 @@ include: >>>> - local: '/.gitlab-ci-edk2.yml' >>>> build-system1: >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>>> before_script: &before_scr_apt >>>> - apt-get update -qq >>>> - apt-get install -y -qq flex bison libglib2.0-dev >>>> libpixman-1-dev genisoimage >>>> @@ -17,6 +19,8 @@ build-system1: >>>> - make -j2 check >>>> build-system2: >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>>> before_script: >>>> *before_scr_apt >>>> script: >>>> @@ -31,6 +35,8 @@ build-system2: >>>> - make -j2 check >>>> build-disabled: >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>>> before_script: >>>> *before_scr_apt >>>> script: >>>> @@ -47,6 +53,8 @@ build-disabled: >>>> - make -j2 check-qtest SPEED=slow >>>> build-tcg-disabled: >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>>> before_script: >>>> *before_scr_apt >>>> script: >>>> @@ -67,6 +75,8 @@ build-tcg-disabled: >>>> 248 250 254 255 256 >>>> build-user: >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>>> before_script: >>>> *before_scr_apt >>>> script: >>>> @@ -78,6 +88,8 @@ build-user: >>>> - make run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user >>>> build-clang: >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>>> before_script: >>>> *before_scr_apt >>>> script: >>>> @@ -92,6 +104,8 @@ build-clang: >>>> - make -j2 check >>>> build-tci: >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME != "staging"' >>>> before_script: >>>> *before_scr_apt >>>> script: >>>> @@ -111,3 +125,105 @@ build-tci: >>>> - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" >>>> ./tests/qtest/pxe-test >>>> - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x" >>>> ./tests/qtest/pxe-test -m slow >>>> + >>>> +ubuntu-18.04.3-x86_64-notools: >>>> + tags: >>>> + - ubuntu_18.04.3 >>>> + - x86_64 >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>>> + script: >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n22 >>>> >>>> + - ./configure --target-list=arm-softmmu --disable-tools >>>> --disable-libssh >>>> + # There is no make / make check in the "pull-buildtest" script for >>>> this. >>>> + # Question: should it at least be built? Or dropped? >>>> + - make >>>> + >>>> +ubuntu-18.04.3-x86_64-all-linux-static: >>>> + tags: >>>> + - ubuntu_18.04.3 >>>> + - x86_64 >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>>> + script: >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n25 >>>> >>>> + - ./configure --enable-debug --static --disable-system >>>> --disable-glusterfs --disable-libssh >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n36 >>>> >>>> + - make >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n45 >>>> >>>> + - make check V=1 >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n48 >>>> >>>> + - make check-tcg V=1 >>>> + >>>> +ubuntu-18.04.3-x86_64-all: >>>> + tags: >>>> + - ubuntu_18.04.3 >>>> + - x86_64 >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>>> + script: >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n26 >>>> >>>> + - ./configure --disable-libssh >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n28 >>>> >>>> + - make >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 >>>> >>>> + - make check V=1 >>>> + >>>> +ubuntu-18.04.3-x86_64-alldbg: >>>> + tags: >>>> + - ubuntu_18.04.3 >>>> + - x86_64 >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>>> + script: >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n27 >>>> >>>> + - ./configure --disable-libssh >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n27 >>>> >>>> + - make clean >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n29 >>>> >>>> + - make >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 >>>> >>>> + - make check V=1 >>>> + >>>> +ubuntu-18.04.3-x86_64-clang: >>>> + tags: >>>> + - ubuntu_18.04.3 >>>> + - x86_64 >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>>> + script: >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n31 >>>> >>>> + - ./configure --disable-libssh --cc=clang --cxx=clang++ >>>> --enable-gtk --extra-cflags='-fsanitize=undefined >>>> -fno-sanitize=shift-base -Werror' >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n33 >>>> >>>> + - make >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 >>>> >>>> + - make check V=1 >>>> + >>>> +ubuntu-18.04.3-x86_64-tci: >>>> + tags: >>>> + - ubuntu_18.04.3 >>>> + - x86_64 >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>>> + script: >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n33 >>>> >>>> + - ./configure --disable-libssh --enable-debug >>>> --enable-tcg-interpreter >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n34 >>>> >>>> + - make >>>> + >>>> +ubuntu-18.04.3-x86_64-notcg: >>>> + tags: >>>> + - ubuntu_18.04.3 >>>> + - x86_64 >>>> + rules: >>>> + - if: '$CI_COMMIT_REF_NAME == "staging"' >>>> + script: >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n35 >>>> >>>> + - ./configure --disable-libssh --enable-debug --disable-tcg >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n35 >>>> >>>> + - make >>>> + # >>>> https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 >>>> >>>> + # Question: check is disabled on the original script, because the >>>> machine >>>> + # is said to be running VirtualBox. Should this be dropped or >>>> should the >>>> + # machine be tweaked or substituted? >>>> + - make check V=1 >>> >>> On another thread Thomas said he doesn't want to be responsible of >>> other tests: >>> https://www.mail-archive.com/qemu-devel@nongnu.org/msg670132.html >>> >>> We could move the set of tests converted from Peter personal >>> testsuite into a separate YAML, so the interested (you Cleber, and >>> Peter) can have a F: entry in MAINTAINERS for it: >> >> >> I like that idea. >> >> >>> >>> >>> include: >>> - local: '/.gitlab-ci-pm215.yml' >> >> >> If so, I suggest moving the file to the .gitlab-ci.d directory >> instead. Likewise the .gitlab-ci-edk2.yml file. This way the sources >> root directory does not get infested of GitLab files. > > Yes, +1. I'm pretty sure Thomas will like that too. Sure. But I'd be also fine sharing or even completely handing over the entry in MAINTAINERS for .gitlab-ci.yml to someone else. I'm only listed there since I was initially the only one who was using the gitlab CI. Now that there is interest for using gitlab CI as our gating CI, I think it would be good to have some other people listed here, too... Thomas
On 03/02/2020 04.23, Cleber Rosa wrote: > This is a crude and straightforward mapping of Peter's > "remake-merge-builds" and "pull-buildtest" scripts. > > Some characteristics were removed for simplicity sake (but eventually > will), including: > * number of simultaneous make jobs > * make's synchronous output, not needed because of previous point > * out-of-tree builds > > This covers the "x86-64 Linux with a variety of different build > configs"[1]. I've personally tested all of them, and only had > issues with the "notcg" job[2], but it seems to be a test specific > issue with the nested KVM I was using. > > [1] - https://wiki.qemu.org/Requirements/GatingCI#Current_Tests > [2] - https://paste.centos.org/view/1dd43a1c > > Signed-off-by: Cleber Rosa <crosa@redhat.com> > --- > .gitlab-ci.yml | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 116 insertions(+) Thanks for doing this! The patch looks basically fine to me, but some comments below... > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > index d2c7d2198e..eb4077e2ab 100644 > --- a/.gitlab-ci.yml > +++ b/.gitlab-ci.yml > @@ -2,6 +2,8 @@ include: > - local: '/.gitlab-ci-edk2.yml' > > build-system1: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: &before_scr_apt > - apt-get update -qq > - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev genisoimage > @@ -17,6 +19,8 @@ build-system1: > - make -j2 check > > build-system2: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -31,6 +35,8 @@ build-system2: > - make -j2 check > > build-disabled: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -47,6 +53,8 @@ build-disabled: > - make -j2 check-qtest SPEED=slow > > build-tcg-disabled: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -67,6 +75,8 @@ build-tcg-disabled: > 248 250 254 255 256 > > build-user: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -78,6 +88,8 @@ build-user: > - make run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user > > build-clang: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: > @@ -92,6 +104,8 @@ build-clang: > - make -j2 check > > build-tci: > + rules: > + - if: '$CI_COMMIT_REF_NAME != "staging"' > before_script: > *before_scr_apt > script: Question to Peter/Alex/Stefan/Howevermergespullreqsinthefuture: Should the above jobs really be skipped for pull requests, or would it be ok to include them there, too? (in the latter case, the above changes could just be dropped) > @@ -111,3 +125,105 @@ build-tci: > - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" ./tests/qtest/pxe-test > - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x" > ./tests/qtest/pxe-test -m slow > + > +ubuntu-18.04.3-x86_64-notools: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n22 Line 22 currently seems to be disabled, so I think you could drop this job? > + - ./configure --target-list=arm-softmmu --disable-tools --disable-libssh > + # There is no make / make check in the "pull-buildtest" script for this. > + # Question: should it at least be built? Or dropped? > + - make > + > +ubuntu-18.04.3-x86_64-all-linux-static: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n25 > + - ./configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n36 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n45 > + - make check V=1 > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n48 > + - make check-tcg V=1 > + > +ubuntu-18.04.3-x86_64-all: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n26 > + - ./configure --disable-libssh > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n28 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 > + - make check V=1 > + > +ubuntu-18.04.3-x86_64-alldbg: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n27 > + - ./configure --disable-libssh > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n27 > + - make clean > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n29 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 > + - make check V=1 > + > +ubuntu-18.04.3-x86_64-clang: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n31 > + - ./configure --disable-libssh --cc=clang --cxx=clang++ --enable-gtk --extra-cflags='-fsanitize=undefined -fno-sanitize=shift-base -Werror' > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n33 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 > + - make check V=1 > + > +ubuntu-18.04.3-x86_64-tci: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n33 > + - ./configure --disable-libssh --enable-debug --enable-tcg-interpreter > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n34 > + - make I think "make check" should now work with TCI, too, there was a fix for it some months ago (commit 2f160e0f9797c7522bfd0d09218d0c9340a5137c). At least it's worth a try to enable it... Alternatively, I think we don't urgently need to introduce this job - there is already "build-tci" in gitlab-ci.yml which should cover --enable-tcg-interpreter already and does some testing, too. > + > +ubuntu-18.04.3-x86_64-notcg: > + tags: > + - ubuntu_18.04.3 > + - x86_64 > + rules: > + - if: '$CI_COMMIT_REF_NAME == "staging"' > + script: > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n35 > + - ./configure --disable-libssh --enable-debug --disable-tcg > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n35 > + - make > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 > + # Question: check is disabled on the original script, because the machine > + # is said to be running VirtualBox. Should this be dropped or should the > + # machine be tweaked or substituted? > + - make check V=1 Without TCG, you definitely need a host that can do KVM for running make check. Question for Peter: Would it be ok to drop this job and simply always use the "build-tcg-disabled" job that is already available in .gitlab-ci.yml ? Thomas
On 07/02/2020 09.37, Thomas Huth wrote: > On 03/02/2020 04.23, Cleber Rosa wrote: >> This is a crude and straightforward mapping of Peter's >> "remake-merge-builds" and "pull-buildtest" scripts. >> >> Some characteristics were removed for simplicity sake (but eventually >> will), including: >> * number of simultaneous make jobs >> * make's synchronous output, not needed because of previous point >> * out-of-tree builds >> >> This covers the "x86-64 Linux with a variety of different build >> configs"[1]. I've personally tested all of them, and only had >> issues with the "notcg" job[2], but it seems to be a test specific >> issue with the nested KVM I was using. >> >> [1] - https://wiki.qemu.org/Requirements/GatingCI#Current_Tests >> [2] - https://paste.centos.org/view/1dd43a1c >> >> Signed-off-by: Cleber Rosa <crosa@redhat.com> >> --- >> .gitlab-ci.yml | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 116 insertions(+) > > Thanks for doing this! The patch looks basically fine to me, but some > comments below... > >> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml >> index d2c7d2198e..eb4077e2ab 100644 >> --- a/.gitlab-ci.yml >> +++ b/.gitlab-ci.yml >> @@ -2,6 +2,8 @@ include: >> - local: '/.gitlab-ci-edk2.yml' >> >> build-system1: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: &before_scr_apt >> - apt-get update -qq >> - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev genisoimage >> @@ -17,6 +19,8 @@ build-system1: >> - make -j2 check >> >> build-system2: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -31,6 +35,8 @@ build-system2: >> - make -j2 check >> >> build-disabled: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -47,6 +53,8 @@ build-disabled: >> - make -j2 check-qtest SPEED=slow >> >> build-tcg-disabled: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -67,6 +75,8 @@ build-tcg-disabled: >> 248 250 254 255 256 >> >> build-user: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -78,6 +88,8 @@ build-user: >> - make run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user >> >> build-clang: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: >> @@ -92,6 +104,8 @@ build-clang: >> - make -j2 check >> >> build-tci: >> + rules: >> + - if: '$CI_COMMIT_REF_NAME != "staging"' >> before_script: >> *before_scr_apt >> script: > > Question to Peter/Alex/Stefan/Howevermergespullreqsinthefuture: > > Should the above jobs really be skipped for pull requests, or would it > be ok to include them there, too? (in the latter case, the above changes > could just be dropped) At least most of the hunks could be dropped - we should likely keep the one for the job that runs additional iotests (i.e. "build-tcg-disabled"), since the block layers folks don't want to see additional iotests as a blocker for pull requests (we've had a lengthy discussion about this last summer...) >> + >> +ubuntu-18.04.3-x86_64-notcg: [...] >> Question for Peter: Would it be ok to drop this job and simply always >> use the "build-tcg-disabled" job that is already available in >> .gitlab-ci.yml ? If we do not run "build-tcg-disabled" for PRs, then this job should not be dropped, of course. Thomas
Thomas Huth <thuth@redhat.com> writes: > On 03/02/2020 04.23, Cleber Rosa wrote: >> This is a crude and straightforward mapping of Peter's >> "remake-merge-builds" and "pull-buildtest" scripts. <snip> > > Thanks for doing this! The patch looks basically fine to me, but some > comments below... > <snip> > > Question to Peter/Alex/Stefan/Howevermergespullreqsinthefuture: > > Should the above jobs really be skipped for pull requests, or would it > be ok to include them there, too? (in the latter case, the above changes > could just be dropped) I think there is certainly value in having different stages of testing. At least initially we'll want to match as closely to the current system and then I imagine as we go on there will be trade-offs to be made in how much is gating PRs and how much is retroactive and catches things that slip through. While more testing is good we can't exponentially grow what is reasonable to test for on all PRs. <snip>
On Fri, 7 Feb 2020 at 08:37, Thomas Huth <thuth@redhat.com> wrote: > Question to Peter/Alex/Stefan/Howevermergespullreqsinthefuture: > > Should the above jobs really be skipped for pull requests, or would it > be ok to include them there, too? (in the latter case, the above changes > could just be dropped) I don't mind, as long as the CI run doesn't take more than (say) 1h to 1h30 elapsed time to complete from kicking it off to getting all the results back. The specific set of x86 configs tested don't really worry me (as long as we do have a reasonable spread): the thing I really care about is that we get the multiple host architectures and the BSDs into the test setup. (We already have about five different ways of doing CI testing of x86 Linux hosts, which is the least likely setup to break. It's the other host configs that I'm really keen to see progress on automation of, because that's what's really blocking us from being able to move off my hand-coded scripting.) In the long run we should probably aim for being consistent about what we test between the pull-request tests and whatever the 'public-facing CI' part is. > > +ubuntu-18.04.3-x86_64-notcg: > > + tags: > > + - ubuntu_18.04.3 > > + - x86_64 > > + rules: > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > + script: > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n35 > > + - ./configure --disable-libssh --enable-debug --disable-tcg > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n35 > > + - make > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 > > + # Question: check is disabled on the original script, because the machine > > + # is said to be running VirtualBox. Should this be dropped or should the > > + # machine be tweaked or substituted? > > + - make check V=1 > > Without TCG, you definitely need a host that can do KVM for running make > check. > Question for Peter: Would it be ok to drop this job and simply always > use the "build-tcg-disabled" job that is already available in > .gitlab-ci.yml ? If we have a CI setup where KVM reliably works then we should ideally test a --disable-tcg setup somehow. Right now my pullreq tests don't test that because I run them on my work desktop box and (as the config says) sometimes I'm running VirtualBox which causes KVM to fail -- but that should be irrelevant to our CI runners... thanks -- PMM
On Fri, Feb 07, 2020 at 04:26:53PM +0000, Peter Maydell wrote: > On Fri, 7 Feb 2020 at 08:37, Thomas Huth <thuth@redhat.com> wrote: > > Question to Peter/Alex/Stefan/Howevermergespullreqsinthefuture: > > > > Should the above jobs really be skipped for pull requests, or would it > > be ok to include them there, too? (in the latter case, the above changes > > could just be dropped) > > I don't mind, as long as the CI run doesn't take more than (say) > 1h to 1h30 elapsed time to complete from kicking it off to getting > all the results back. The specific set of x86 configs tested don't > really worry me (as long as we do have a reasonable spread): > the thing I really care about is that we get the multiple > host architectures and the BSDs into the test setup. (We already > have about five different ways of doing CI testing of x86 Linux > hosts, which is the least likely setup to break. It's the > other host configs that I'm really keen to see progress on > automation of, because that's what's really blocking us from > being able to move off my hand-coded scripting.) > I can imagine how important the average runtime of those checks is to Howevermergespullreqsnoworinthefuture. Now, being a bit more selfish or paranoid, I see the importance of separating those different types of checks (pre-PR and others) until we achieve a stable environment for the former. I do see an extended amount of testing at every stage as one of the later goals of this effort, but we have to match that with both computing and human capacity. In short, I'd suggest keeping them separate *for now*. > In the long run we should probably aim for being consistent about > what we test between the pull-request tests and whatever the > 'public-facing CI' part is. > Right. I think this will be an exercise in capacity planning, and ideally, if there are no resource constraints, all checks could be performed at all times. > > > +ubuntu-18.04.3-x86_64-notcg: > > > + tags: > > > + - ubuntu_18.04.3 > > > + - x86_64 > > > + rules: > > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > > + script: > > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n35 > > > + - ./configure --disable-libssh --enable-debug --disable-tcg > > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n35 > > > + - make > > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 > > > + # Question: check is disabled on the original script, because the machine > > > + # is said to be running VirtualBox. Should this be dropped or should the > > > + # machine be tweaked or substituted? > > > + - make check V=1 > > > > Without TCG, you definitely need a host that can do KVM for running make > > check. > > Question for Peter: Would it be ok to drop this job and simply always > > use the "build-tcg-disabled" job that is already available in > > .gitlab-ci.yml ? > > If we have a CI setup where KVM reliably works then we should > ideally test a --disable-tcg setup somehow. Right now my pullreq > tests don't test that because I run them on my work desktop box > and (as the config says) sometimes I'm running VirtualBox which > causes KVM to fail -- but that should be irrelevant to our CI > runners... > You got me confused here Peter. Do you intend to reuse the same machines you're using now (say your work desktop box) or is there an expectation for different machines to be introduced and used for these jobs? > thanks > -- PMM > Thanks for the feedback, - Cleber.
On Mon, Feb 03, 2020 at 03:36:28PM -0200, Wainer dos Santos Moschetta wrote: > Hi Cleber, > > On 2/3/20 1:23 AM, Cleber Rosa wrote: > > This is a crude and straightforward mapping of Peter's > > "remake-merge-builds" and "pull-buildtest" scripts. > > > > Some characteristics were removed for simplicity sake (but eventually > > will), including: > > * number of simultaneous make jobs > > * make's synchronous output, not needed because of previous point > > * out-of-tree builds > > > > This covers the "x86-64 Linux with a variety of different build > > configs"[1]. I've personally tested all of them, and only had > > issues with the "notcg" job[2], but it seems to be a test specific > > issue with the nested KVM I was using. > > > Could you put a comment in the commit text or in-code explaining why it > builds QEMU with --disable-libssh on all the jobs? > Yes, sure. Answering it now, it's because of https://bugs.launchpad.net/qemu/+bug/1838763, which was present in tests/docker/dockerfiles/ubuntu1804.docker, and that I've hit when I tried to be stubborn and ignore it. :) > > > > [1] - https://wiki.qemu.org/Requirements/GatingCI#Current_Tests > > [2] - https://paste.centos.org/view/1dd43a1c > > > > Signed-off-by: Cleber Rosa <crosa@redhat.com> > > --- > > .gitlab-ci.yml | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 116 insertions(+) > > > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > > index d2c7d2198e..eb4077e2ab 100644 > > --- a/.gitlab-ci.yml > > +++ b/.gitlab-ci.yml > > @@ -2,6 +2,8 @@ include: > > - local: '/.gitlab-ci-edk2.yml' > > build-system1: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: &before_scr_apt > > - apt-get update -qq > > - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev genisoimage > > @@ -17,6 +19,8 @@ build-system1: > > - make -j2 check > > build-system2: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: > > *before_scr_apt > > script: > > @@ -31,6 +35,8 @@ build-system2: > > - make -j2 check > > build-disabled: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: > > *before_scr_apt > > script: > > @@ -47,6 +53,8 @@ build-disabled: > > - make -j2 check-qtest SPEED=slow > > build-tcg-disabled: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: > > *before_scr_apt > > script: > > @@ -67,6 +75,8 @@ build-tcg-disabled: > > 248 250 254 255 256 > > build-user: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: > > *before_scr_apt > > script: > > @@ -78,6 +88,8 @@ build-user: > > - make run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user > > build-clang: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: > > *before_scr_apt > > script: > > @@ -92,6 +104,8 @@ build-clang: > > - make -j2 check > > build-tci: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: > > *before_scr_apt > > script: > > @@ -111,3 +125,105 @@ build-tci: > > - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" ./tests/qtest/pxe-test > > - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x" > > ./tests/qtest/pxe-test -m slow > > + > > +ubuntu-18.04.3-x86_64-notools: > > + tags: > > + - ubuntu_18.04.3 > > + - x86_64 > > + rules: > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > + script: > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n22 > > + - ./configure --target-list=arm-softmmu --disable-tools --disable-libssh > > + # There is no make / make check in the "pull-buildtest" script for this. > > + # Question: should it at least be built? Or dropped? > > + - make > > + > > +ubuntu-18.04.3-x86_64-all-linux-static: > > Doesn't it need to LD_PRELOAD on this runner too? -> > > |https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n24 > | > > > + tags: > > + - ubuntu_18.04.3 > > + - x86_64 > > + rules: > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > + script: > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n25 > > + - ./configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh > > Shouldn't it --disable-gnutls instead of --disable-glusterfs? > Actually, `--disable-glusterfs` was intended because I couldn't find static versions of the glusterfs libs on that system (or maybe they're not available anywhere). That should be documented though. Also, the build and make steps worked fine without `--disable-gnutls`. I was trying to not carry over any "exception" type of arguments, unless they proved to be necessary. Maybe Peter can give some more info about this (should it be kept or not)? > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n36 > > + - make > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n45 > > + - make check V=1 > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n48 > > + - make check-tcg V=1 > > > Any special reason to split it in 3 steps instead of a single `make check > check-tcg`? > > That pattern continues on next jobs... > > I think it's simply because it's easier to track the command that failed on the GitLab CI output. > > + > > +ubuntu-18.04.3-x86_64-all: > > + tags: > > + - ubuntu_18.04.3 > > + - x86_64 > > + rules: > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > + script: > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n26 > > + - ./configure --disable-libssh > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n28 > > + - make > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 > > + - make check V=1 > > + > > +ubuntu-18.04.3-x86_64-alldbg: > > + tags: > > + - ubuntu_18.04.3 > > + - x86_64 > > + rules: > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > + script: > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n27 > > + - ./configure --disable-libssh > Missing --enable-debug, right? > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n27 > > + - make clean > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n29 > > + - make > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 > > + - make check V=1 > > + > > +ubuntu-18.04.3-x86_64-clang: > > + tags: > > + - ubuntu_18.04.3 > > + - x86_64 > > + rules: > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > + script: > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n31 > > + - ./configure --disable-libssh --cc=clang --cxx=clang++ --enable-gtk --extra-cflags='-fsanitize=undefined -fno-sanitize=shift-base -Werror' > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n33 > > + - make > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 > > + - make check V=1 > > + > > +ubuntu-18.04.3-x86_64-tci: > > + tags: > > + - ubuntu_18.04.3 > > + - x86_64 > > + rules: > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > + script: > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n33 > > + - ./configure --disable-libssh --enable-debug --enable-tcg-interpreter > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n34 > > + - make > > Would make sense to add a commented `make check` entry as well? > > https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n40 > Not sure about that, but surely every one of those exceptions need to be tracked. - Cleber.
On Fri, Feb 07, 2020 at 09:37:16AM +0100, Thomas Huth wrote: > On 03/02/2020 04.23, Cleber Rosa wrote: > > This is a crude and straightforward mapping of Peter's > > "remake-merge-builds" and "pull-buildtest" scripts. > > > > Some characteristics were removed for simplicity sake (but eventually > > will), including: > > * number of simultaneous make jobs > > * make's synchronous output, not needed because of previous point > > * out-of-tree builds > > > > This covers the "x86-64 Linux with a variety of different build > > configs"[1]. I've personally tested all of them, and only had > > issues with the "notcg" job[2], but it seems to be a test specific > > issue with the nested KVM I was using. > > > > [1] - https://wiki.qemu.org/Requirements/GatingCI#Current_Tests > > [2] - https://paste.centos.org/view/1dd43a1c > > > > Signed-off-by: Cleber Rosa <crosa@redhat.com> > > --- > > .gitlab-ci.yml | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 116 insertions(+) > > Thanks for doing this! The patch looks basically fine to me, but some > comments below... > > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > > index d2c7d2198e..eb4077e2ab 100644 > > --- a/.gitlab-ci.yml > > +++ b/.gitlab-ci.yml > > @@ -2,6 +2,8 @@ include: > > - local: '/.gitlab-ci-edk2.yml' > > > > build-system1: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: &before_scr_apt > > - apt-get update -qq > > - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev genisoimage > > @@ -17,6 +19,8 @@ build-system1: > > - make -j2 check > > > > build-system2: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: > > *before_scr_apt > > script: > > @@ -31,6 +35,8 @@ build-system2: > > - make -j2 check > > > > build-disabled: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: > > *before_scr_apt > > script: > > @@ -47,6 +53,8 @@ build-disabled: > > - make -j2 check-qtest SPEED=slow > > > > build-tcg-disabled: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: > > *before_scr_apt > > script: > > @@ -67,6 +75,8 @@ build-tcg-disabled: > > 248 250 254 255 256 > > > > build-user: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: > > *before_scr_apt > > script: > > @@ -78,6 +88,8 @@ build-user: > > - make run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user > > > > build-clang: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: > > *before_scr_apt > > script: > > @@ -92,6 +104,8 @@ build-clang: > > - make -j2 check > > > > build-tci: > > + rules: > > + - if: '$CI_COMMIT_REF_NAME != "staging"' > > before_script: > > *before_scr_apt > > script: > > Question to Peter/Alex/Stefan/Howevermergespullreqsinthefuture: > > Should the above jobs really be skipped for pull requests, or would it > be ok to include them there, too? (in the latter case, the above changes > could just be dropped) > > > @@ -111,3 +125,105 @@ build-tci: > > - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" ./tests/qtest/pxe-test > > - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x" > > ./tests/qtest/pxe-test -m slow > > + > > +ubuntu-18.04.3-x86_64-notools: > > + tags: > > + - ubuntu_18.04.3 > > + - x86_64 > > + rules: > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > + script: > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n22 > > Line 22 currently seems to be disabled, so I think you could drop this job? > I'd gladly drop it. I think the reason I kept it was to hear from Peter what to actually do about those commented out lines. > > + - ./configure --target-list=arm-softmmu --disable-tools --disable-libssh > > + # There is no make / make check in the "pull-buildtest" script for this. > > + # Question: should it at least be built? Or dropped? > > + - make > > + > > +ubuntu-18.04.3-x86_64-all-linux-static: > > + tags: > > + - ubuntu_18.04.3 > > + - x86_64 > > + rules: > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > + script: > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n25 > > + - ./configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n36 > > + - make > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n45 > > + - make check V=1 > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n48 > > + - make check-tcg V=1 > > + > > +ubuntu-18.04.3-x86_64-all: > > + tags: > > + - ubuntu_18.04.3 > > + - x86_64 > > + rules: > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > + script: > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n26 > > + - ./configure --disable-libssh > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n28 > > + - make > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 > > + - make check V=1 > > + > > +ubuntu-18.04.3-x86_64-alldbg: > > + tags: > > + - ubuntu_18.04.3 > > + - x86_64 > > + rules: > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > + script: > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n27 > > + - ./configure --disable-libssh > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n27 > > + - make clean > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n29 > > + - make > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 > > + - make check V=1 > > + > > +ubuntu-18.04.3-x86_64-clang: > > + tags: > > + - ubuntu_18.04.3 > > + - x86_64 > > + rules: > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > + script: > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n31 > > + - ./configure --disable-libssh --cc=clang --cxx=clang++ --enable-gtk --extra-cflags='-fsanitize=undefined -fno-sanitize=shift-base -Werror' > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n33 > > + - make > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 > > + - make check V=1 > > + > > +ubuntu-18.04.3-x86_64-tci: > > + tags: > > + - ubuntu_18.04.3 > > + - x86_64 > > + rules: > > + - if: '$CI_COMMIT_REF_NAME == "staging"' > > + script: > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n33 > > + - ./configure --disable-libssh --enable-debug --enable-tcg-interpreter > > + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n34 > > + - make > > I think "make check" should now work with TCI, too, there was a fix for > it some months ago (commit 2f160e0f9797c7522bfd0d09218d0c9340a5137c). > At least it's worth a try to enable it... > I did try, and this is what I got: ERROR:tests/qtest/prom-env-test.c:42:check_guest_memory: assertion failed (signature == MAGIC): (0x00000000 == 0xcafec0de) ERROR - Bail out! ERROR:tests/qtest/prom-env-test.c:42:check_guest_memory: assertion failed (signature == MAGIC): (0x00000000 == 0xcafec0de) /home/gitlab-runner/builds/E8tS7ajQ/0/crosa/qemu/tests/Makefile.include:629: recipe for target 'check-qtest-sparc64' failed ERROR: Job failed: exit status 1 The full log can be found here: https://cleber.fedorapeople.org/ubuntu-18.04.3-x86_64-tci.txt > Alternatively, I think we don't urgently need to introduce this job - > there is already "build-tci" in gitlab-ci.yml which should cover > --enable-tcg-interpreter already and does some testing, too. > OK, I'm fine with that, but I think Peter should have the final saying here (as it's "his" job). Thanks, - Cleber.
On Fri, Feb 07, 2020 at 11:08:15AM +0000, Alex Bennée wrote: > > Thomas Huth <thuth@redhat.com> writes: > > > On 03/02/2020 04.23, Cleber Rosa wrote: > >> This is a crude and straightforward mapping of Peter's > >> "remake-merge-builds" and "pull-buildtest" scripts. > <snip> > > > > Thanks for doing this! The patch looks basically fine to me, but some > > comments below... > > > <snip> > > > > Question to Peter/Alex/Stefan/Howevermergespullreqsinthefuture: > > > > Should the above jobs really be skipped for pull requests, or would it > > be ok to include them there, too? (in the latter case, the above changes > > could just be dropped) > > I think there is certainly value in having different stages of testing. > At least initially we'll want to match as closely to the current system This would be my preferred approach too. One type of change at a time makes me feel much cosier :) > and then I imagine as we go on there will be trade-offs to be made in > how much is gating PRs and how much is retroactive and catches things > that slip through. While more testing is good we can't exponentially > grow what is reasonable to test for on all PRs. > Like I said elsewhere, if we have no constraints, we could test everything everywhere. I'm not that naive, and it should be obvious that what I mean is that we can progressevely grow in coverage, until we hit those limits. Thanks, - Cleber. > <snip> > > -- > Alex Bennée >
On Fri, 7 Feb 2020 at 19:27, Cleber Rosa <crosa@redhat.com> wrote: > > On Fri, Feb 07, 2020 at 04:26:53PM +0000, Peter Maydell wrote: > > If we have a CI setup where KVM reliably works then we should > > ideally test a --disable-tcg setup somehow. Right now my pullreq > > tests don't test that because I run them on my work desktop box > > and (as the config says) sometimes I'm running VirtualBox which > > causes KVM to fail -- but that should be irrelevant to our CI > > runners... > You got me confused here Peter. Do you intend to reuse the same > machines you're using now (say your work desktop box) or is there an > expectation for different machines to be introduced and used for these > jobs? No, I specifically don't want the CI jobs to be running on my work desktop, because that use of private-to-me machines is one of the things that's blocking us from passing the pullreq handling to a wider group of people. The thing I was trying to say was that the reason why current pullreq testing doesn't include a --disable-tcg is a pure accident of the setup it's running in, not a deliberate decision that we should not be testing that config. It would be better if we did test it, and if the new CI setup allows us to test it then we should. thanks -- PMM
On Fri, 7 Feb 2020 at 19:34, Cleber Rosa <crosa@redhat.com> wrote: > Also, the build and make steps worked fine without `--disable-gnutls`. > I was trying to not carry over any "exception" type of arguments, > unless they proved to be necessary. Maybe Peter can give some more > info about this (should it be kept or not)? A lot of those config options are random historical accident: I probably added in the configure option to work around something years back and then never bothered to undo it. I agree that if we don't need to pass that option to run on whatever OS the CI job is running on we shouldn't keep it. More generally, I don't think we should worry much about exactly replicating the fine detail of the various configurations I currently run on x86. If we basically cover: * a debug build * a non-debug build * a linux-user --static build * a clang build with the sanitizers enabled [+] * windows crossbuilds * a --disable-tcg build * an --enable-tci-interpreter build * and at least one of the above is done as an "incremental" build and one as a "make clean and then build" then that's the same coverage we have today. [+] my scripts do this by hand by passing a lot of extra cflags, but IIRC configure now supports a simple 'enable sanitizers' option of some kind, which would be OK too thanks -- PMM
On Thu, Feb 06, 2020 at 02:05:04PM +0100, Philippe Mathieu-Daudé wrote: > > > > On another thread Thomas said he doesn't want to be responsible of other > > tests: > > https://www.mail-archive.com/qemu-devel@nongnu.org/msg670132.html > > > > We could move the set of tests converted from Peter personal testsuite > > into a separate YAML, so the interested (you Cleber, and Peter) can have > > a F: entry in MAINTAINERS for it: > > > > include: > > - local: '/.gitlab-ci-pm215.yml' Yep, I agree this is a good idea. I'll be following that pattern. > > I'm not calling this file "pm215" because Peter owns it, but because it > would contains all the tests Peter was running manually before we use GitLab > as a gating CI. > > One small difference is that I feel that Peter wants this to be less about him, and more about a established set of jobs to gate on. So, I'll be using the ".gitlab-ci-gating.yml" file name for now, unless my perception is badly calibrated. :) Thanks! - Cleber.
On Sat, Feb 08, 2020 at 01:02:41PM +0000, Peter Maydell wrote: > On Fri, 7 Feb 2020 at 19:34, Cleber Rosa <crosa@redhat.com> wrote: > > Also, the build and make steps worked fine without `--disable-gnutls`. > > I was trying to not carry over any "exception" type of arguments, > > unless they proved to be necessary. Maybe Peter can give some more > > info about this (should it be kept or not)? > > A lot of those config options are random historical accident: > I probably added in the configure option to work around something > years back and then never bothered to undo it. I agree that if we > don't need to pass that option to run on whatever OS the CI > job is running on we shouldn't keep it. > > More generally, I don't think we should worry much about > exactly replicating the fine detail of the various configurations I OK, good to hear that. > currently run on x86. If we basically cover: > * a debug build Which should be covered by the following job (relevant snippets only): ubuntu-18.04.3-x86_64-alldbg: ... - ./configure --enable-debug --disable-libssh - make clean - make - make check V=1 > * a non-debug build I assume the following is a suitable non-debug build: ubuntu-18.04.3-x86_64-all: ... script: - ./configure --disable-libssh - make - make check V=1 > * a linux-user --static build This is roughly the job to fulfill this requirement: ubuntu-18.04.3-x86_64-all-linux-static: ... # --disable-libssh is needed because of https://bugs.launchpad.net/qemu/+bug/1838763 # --disable-glusterfs is needed because there's no static version of those libs in distro supplied packages - ./configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh - make - make check V=1 - make check-tcg V=1 > * a clang build with the sanitizers enabled [+] I've tested the following which includes the sanitizers but drops the '--enable-gtk' option: ubuntu-18.04.3-x86_64-clang: ... - ./configure --disable-libssh --cc=clang --cxx=clang++ --enable-sanitizers - make - make check V=1 > * windows crossbuilds OK, there weren't any windows crossbuilds jobs in this version but I'm adding them (32 and 64 bits). > * a --disable-tcg build Which should be covered by the following job definition: ubuntu-18.04.3-x86_64-notcg: ... - ./configure --disable-libssh --disable-tcg - make - make check V=1 > * an --enable-tci-interpreter build Which should be covered by: ubuntu-18.04.3-x86_64-tci: ... - ./configure --disable-libssh --enable-tcg-interpreter - make > * and at least one of the above is done as an "incremental" > build and one as a "make clean and then build" I'm not sure yet how to cleanly accomplish this. IIRC it suggests working with different versions of the code in a single job. GitLab will usually give you the code matching the commit you're testing. I believe I could do something like: - git reset --hard HEAD~X - configure ... - make - git checkout $PREVIOUS_HEAD - make But I'll have to experiment a bit more with it. > then that's the same coverage we have today. > > [+] my scripts do this by hand by passing a lot of extra cflags, > but IIRC configure now supports a simple 'enable sanitizers' > option of some kind, which would be OK too > > thanks > -- PMM > Thanks for the very straight answers here. I'll work on those two remaining points (windows cross builds, and incremental builds). Please let me know if I misunderstood any of your points. Thanks, - Cleber.
On Tue, 10 Mar 2020 at 05:01, Cleber Rosa <crosa@redhat.com> wrote: > Thanks for the very straight answers here. I'll work > on those two remaining points (windows cross builds, and > incremental builds). I did wonder if incremental build was going to be awkward to test in a CI setup. Anyway, I think it would be good to start working with the basic "do CI this way" framework now, rather than trying to get all the test configs I have now working with it. I can always run the builds through the new test setup and in parallel do the handful of "not yet implemented in the new setup" builds by hand with the old scripts. thanks -- PMM
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d2c7d2198e..eb4077e2ab 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,6 +2,8 @@ include: - local: '/.gitlab-ci-edk2.yml' build-system1: + rules: + - if: '$CI_COMMIT_REF_NAME != "staging"' before_script: &before_scr_apt - apt-get update -qq - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev genisoimage @@ -17,6 +19,8 @@ build-system1: - make -j2 check build-system2: + rules: + - if: '$CI_COMMIT_REF_NAME != "staging"' before_script: *before_scr_apt script: @@ -31,6 +35,8 @@ build-system2: - make -j2 check build-disabled: + rules: + - if: '$CI_COMMIT_REF_NAME != "staging"' before_script: *before_scr_apt script: @@ -47,6 +53,8 @@ build-disabled: - make -j2 check-qtest SPEED=slow build-tcg-disabled: + rules: + - if: '$CI_COMMIT_REF_NAME != "staging"' before_script: *before_scr_apt script: @@ -67,6 +75,8 @@ build-tcg-disabled: 248 250 254 255 256 build-user: + rules: + - if: '$CI_COMMIT_REF_NAME != "staging"' before_script: *before_scr_apt script: @@ -78,6 +88,8 @@ build-user: - make run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user build-clang: + rules: + - if: '$CI_COMMIT_REF_NAME != "staging"' before_script: *before_scr_apt script: @@ -92,6 +104,8 @@ build-clang: - make -j2 check build-tci: + rules: + - if: '$CI_COMMIT_REF_NAME != "staging"' before_script: *before_scr_apt script: @@ -111,3 +125,105 @@ build-tci: - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" ./tests/qtest/pxe-test - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x" ./tests/qtest/pxe-test -m slow + +ubuntu-18.04.3-x86_64-notools: + tags: + - ubuntu_18.04.3 + - x86_64 + rules: + - if: '$CI_COMMIT_REF_NAME == "staging"' + script: + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n22 + - ./configure --target-list=arm-softmmu --disable-tools --disable-libssh + # There is no make / make check in the "pull-buildtest" script for this. + # Question: should it at least be built? Or dropped? + - make + +ubuntu-18.04.3-x86_64-all-linux-static: + tags: + - ubuntu_18.04.3 + - x86_64 + rules: + - if: '$CI_COMMIT_REF_NAME == "staging"' + script: + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n25 + - ./configure --enable-debug --static --disable-system --disable-glusterfs --disable-libssh + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n36 + - make + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n45 + - make check V=1 + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n48 + - make check-tcg V=1 + +ubuntu-18.04.3-x86_64-all: + tags: + - ubuntu_18.04.3 + - x86_64 + rules: + - if: '$CI_COMMIT_REF_NAME == "staging"' + script: + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n26 + - ./configure --disable-libssh + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n28 + - make + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 + - make check V=1 + +ubuntu-18.04.3-x86_64-alldbg: + tags: + - ubuntu_18.04.3 + - x86_64 + rules: + - if: '$CI_COMMIT_REF_NAME == "staging"' + script: + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n27 + - ./configure --disable-libssh + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n27 + - make clean + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n29 + - make + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n37 + - make check V=1 + +ubuntu-18.04.3-x86_64-clang: + tags: + - ubuntu_18.04.3 + - x86_64 + rules: + - if: '$CI_COMMIT_REF_NAME == "staging"' + script: + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n31 + - ./configure --disable-libssh --cc=clang --cxx=clang++ --enable-gtk --extra-cflags='-fsanitize=undefined -fno-sanitize=shift-base -Werror' + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n33 + - make + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 + - make check V=1 + +ubuntu-18.04.3-x86_64-tci: + tags: + - ubuntu_18.04.3 + - x86_64 + rules: + - if: '$CI_COMMIT_REF_NAME == "staging"' + script: + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n33 + - ./configure --disable-libssh --enable-debug --enable-tcg-interpreter + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n34 + - make + +ubuntu-18.04.3-x86_64-notcg: + tags: + - ubuntu_18.04.3 + - x86_64 + rules: + - if: '$CI_COMMIT_REF_NAME == "staging"' + script: + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/remake-merge-builds#n35 + - ./configure --disable-libssh --enable-debug --disable-tcg + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n35 + - make + # https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree/pull-buildtest#n39 + # Question: check is disabled on the original script, because the machine + # is said to be running VirtualBox. Should this be dropped or should the + # machine be tweaked or substituted? + - make check V=1
This is a crude and straightforward mapping of Peter's "remake-merge-builds" and "pull-buildtest" scripts. Some characteristics were removed for simplicity sake (but eventually will), including: * number of simultaneous make jobs * make's synchronous output, not needed because of previous point * out-of-tree builds This covers the "x86-64 Linux with a variety of different build configs"[1]. I've personally tested all of them, and only had issues with the "notcg" job[2], but it seems to be a test specific issue with the nested KVM I was using. [1] - https://wiki.qemu.org/Requirements/GatingCI#Current_Tests [2] - https://paste.centos.org/view/1dd43a1c Signed-off-by: Cleber Rosa <crosa@redhat.com> --- .gitlab-ci.yml | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+)