All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 1/2] GitLab CI: avoid calling before_scripts on unintended jobs
@ 2020-02-03  3:23 Cleber Rosa
  2020-02-03  3:23 ` [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs Cleber Rosa
                   ` (2 more replies)
  0 siblings, 3 replies; 24+ messages in thread
From: Cleber Rosa @ 2020-02-03  3:23 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Thomas Huth, Cleber Rosa

At this point it seems that all jobs depend on those steps, with
maybe the EDK2 jobs as exceptions.

The jobs that will be added will not want those scripts to be
run, so let's move these steps to the appropriate jobs, while
still trying to avoid repetition.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
---
 .gitlab-ci.yml | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 228783993e..d2c7d2198e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,11 +1,10 @@
 include:
   - local: '/.gitlab-ci-edk2.yml'
 
-before_script:
+build-system1:
+ before_script: &before_scr_apt
  - apt-get update -qq
  - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev genisoimage
-
-build-system1:
  script:
  - apt-get install -y -qq libgtk-3-dev libvte-dev nettle-dev libcacard-dev
       libusb-dev libvde-dev libspice-protocol-dev libgl1-mesa-dev libvdeplug-dev
@@ -18,6 +17,8 @@ build-system1:
  - make -j2 check
 
 build-system2:
+ before_script:
+  *before_scr_apt
  script:
  - apt-get install -y -qq libsdl2-dev libgcrypt-dev libbrlapi-dev libaio-dev
       libfdt-dev liblzo2-dev librdmacm-dev libibverbs-dev libibumad-dev
@@ -30,6 +31,8 @@ build-system2:
  - make -j2 check
 
 build-disabled:
+ before_script:
+  *before_scr_apt
  script:
  - mkdir build
  - cd build
@@ -44,6 +47,8 @@ build-disabled:
  - make -j2 check-qtest SPEED=slow
 
 build-tcg-disabled:
+ before_script:
+  *before_scr_apt
  script:
  - apt-get install -y -qq clang libgtk-3-dev libusb-dev
  - mkdir build
@@ -62,6 +67,8 @@ build-tcg-disabled:
             248 250 254 255 256
 
 build-user:
+ before_script:
+  *before_scr_apt
  script:
  - mkdir build
  - cd build
@@ -71,6 +78,8 @@ build-user:
  - make run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user
 
 build-clang:
+ before_script:
+  *before_scr_apt
  script:
  - apt-get install -y -qq clang libsdl2-dev libattr1-dev libcap-ng-dev
       xfslibs-dev libiscsi-dev libnfs-dev libseccomp-dev gnutls-dev librbd-dev
@@ -83,6 +92,8 @@ build-clang:
  - make -j2 check
 
 build-tci:
+ before_script:
+  *before_scr_apt
  script:
  - TARGETS="aarch64 alpha arm hppa m68k microblaze moxie ppc64 s390x x86_64"
  - mkdir build
-- 
2.21.1



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-03  3:23 [RFC PATCH 1/2] GitLab CI: avoid calling before_scripts on unintended jobs Cleber Rosa
@ 2020-02-03  3:23 ` Cleber Rosa
  2020-02-03 17:36   ` Wainer dos Santos Moschetta
                     ` (2 more replies)
  2020-02-03 15:26 ` [RFC PATCH 1/2] GitLab CI: avoid calling before_scripts on unintended jobs Wainer dos Santos Moschetta
  2020-02-03 16:08 ` Thomas Huth
  2 siblings, 3 replies; 24+ messages in thread
From: Cleber Rosa @ 2020-02-03  3:23 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Thomas Huth, Cleber Rosa

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
-- 
2.21.1



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 1/2] GitLab CI: avoid calling before_scripts on unintended jobs
  2020-02-03  3:23 [RFC PATCH 1/2] GitLab CI: avoid calling before_scripts on unintended jobs Cleber Rosa
  2020-02-03  3:23 ` [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs Cleber Rosa
@ 2020-02-03 15:26 ` Wainer dos Santos Moschetta
  2020-02-03 16:08 ` Thomas Huth
  2 siblings, 0 replies; 24+ messages in thread
From: Wainer dos Santos Moschetta @ 2020-02-03 15:26 UTC (permalink / raw)
  To: Cleber Rosa, qemu-devel; +Cc: Peter Maydell, Thomas Huth


On 2/3/20 1:23 AM, Cleber Rosa wrote:
> At this point it seems that all jobs depend on those steps, with
> maybe the EDK2 jobs as exceptions.
>
> The jobs that will be added will not want those scripts to be
> run, so let's move these steps to the appropriate jobs, while
> still trying to avoid repetition.
>
> Signed-off-by: Cleber Rosa <crosa@redhat.com>
> ---
>   .gitlab-ci.yml | 17 ++++++++++++++---
>   1 file changed, 14 insertions(+), 3 deletions(-)


Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>


>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 228783993e..d2c7d2198e 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -1,11 +1,10 @@
>   include:
>     - local: '/.gitlab-ci-edk2.yml'
>   
> -before_script:
> +build-system1:
> + before_script: &before_scr_apt
>    - apt-get update -qq
>    - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev genisoimage
> -
> -build-system1:
>    script:
>    - apt-get install -y -qq libgtk-3-dev libvte-dev nettle-dev libcacard-dev
>         libusb-dev libvde-dev libspice-protocol-dev libgl1-mesa-dev libvdeplug-dev
> @@ -18,6 +17,8 @@ build-system1:
>    - make -j2 check
>   
>   build-system2:
> + before_script:
> +  *before_scr_apt
>    script:
>    - apt-get install -y -qq libsdl2-dev libgcrypt-dev libbrlapi-dev libaio-dev
>         libfdt-dev liblzo2-dev librdmacm-dev libibverbs-dev libibumad-dev
> @@ -30,6 +31,8 @@ build-system2:
>    - make -j2 check
>   
>   build-disabled:
> + before_script:
> +  *before_scr_apt
>    script:
>    - mkdir build
>    - cd build
> @@ -44,6 +47,8 @@ build-disabled:
>    - make -j2 check-qtest SPEED=slow
>   
>   build-tcg-disabled:
> + before_script:
> +  *before_scr_apt
>    script:
>    - apt-get install -y -qq clang libgtk-3-dev libusb-dev
>    - mkdir build
> @@ -62,6 +67,8 @@ build-tcg-disabled:
>               248 250 254 255 256
>   
>   build-user:
> + before_script:
> +  *before_scr_apt
>    script:
>    - mkdir build
>    - cd build
> @@ -71,6 +78,8 @@ build-user:
>    - make run-tcg-tests-i386-linux-user run-tcg-tests-x86_64-linux-user
>   
>   build-clang:
> + before_script:
> +  *before_scr_apt
>    script:
>    - apt-get install -y -qq clang libsdl2-dev libattr1-dev libcap-ng-dev
>         xfslibs-dev libiscsi-dev libnfs-dev libseccomp-dev gnutls-dev librbd-dev
> @@ -83,6 +92,8 @@ build-clang:
>    - make -j2 check
>   
>   build-tci:
> + before_script:
> +  *before_scr_apt
>    script:
>    - TARGETS="aarch64 alpha arm hppa m68k microblaze moxie ppc64 s390x x86_64"
>    - mkdir build



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 1/2] GitLab CI: avoid calling before_scripts on unintended jobs
  2020-02-03  3:23 [RFC PATCH 1/2] GitLab CI: avoid calling before_scripts on unintended jobs Cleber Rosa
  2020-02-03  3:23 ` [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs Cleber Rosa
  2020-02-03 15:26 ` [RFC PATCH 1/2] GitLab CI: avoid calling before_scripts on unintended jobs Wainer dos Santos Moschetta
@ 2020-02-03 16:08 ` Thomas Huth
  2020-02-07 20:01   ` Cleber Rosa
  2 siblings, 1 reply; 24+ messages in thread
From: Thomas Huth @ 2020-02-03 16:08 UTC (permalink / raw)
  To: Cleber Rosa, qemu-devel; +Cc: Peter Maydell

On 03/02/2020 04.23, Cleber Rosa wrote:
> At this point it seems that all jobs depend on those steps, with
> maybe the EDK2 jobs as exceptions.
> 
> The jobs that will be added will not want those scripts to be
> run, so let's move these steps to the appropriate jobs, while
> still trying to avoid repetition.
> 
> Signed-off-by: Cleber Rosa <crosa@redhat.com>
> ---
>  .gitlab-ci.yml | 17 ++++++++++++++---
>  1 file changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 228783993e..d2c7d2198e 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -1,11 +1,10 @@
>  include:
>    - local: '/.gitlab-ci-edk2.yml'
>  
> -before_script:
> +build-system1:
> + before_script: &before_scr_apt
>   - apt-get update -qq
>   - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev genisoimage
> -
> -build-system1:
>   script:
>   - apt-get install -y -qq libgtk-3-dev libvte-dev nettle-dev libcacard-dev
>        libusb-dev libvde-dev libspice-protocol-dev libgl1-mesa-dev libvdeplug-dev

I'm not very familiar with these anchors yet, but would it maybe be
possible to keep the "template" out of build-system1 ? Something like
they show on https://docs.gitlab.com/ee/ci/yaml/#anchors ?

Anyway, patch is also fine for me in its current shape, so FWIW:

Acked-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-03  3:23 ` [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs Cleber Rosa
@ 2020-02-03 17:36   ` Wainer dos Santos Moschetta
  2020-02-07 19:34     ` Cleber Rosa
  2020-02-06 13:03   ` Philippe Mathieu-Daudé
  2020-02-07  8:37   ` Thomas Huth
  2 siblings, 1 reply; 24+ messages in thread
From: Wainer dos Santos Moschetta @ 2020-02-03 17:36 UTC (permalink / raw)
  To: Cleber Rosa, qemu-devel; +Cc: Peter Maydell, Thomas Huth

[-- Attachment #1: Type: text/plain, Size: 7650 bytes --]

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

[-- Attachment #2: Type: text/html, Size: 11887 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-03  3:23 ` [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs Cleber Rosa
  2020-02-03 17:36   ` Wainer dos Santos Moschetta
@ 2020-02-06 13:03   ` Philippe Mathieu-Daudé
  2020-02-06 13:05     ` Philippe Mathieu-Daudé
  2020-02-06 13:52     ` Wainer dos Santos Moschetta
  2020-02-07  8:37   ` Thomas Huth
  2 siblings, 2 replies; 24+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-06 13:03 UTC (permalink / raw)
  To: Cleber Rosa, qemu-devel; +Cc: Peter Maydell, Thomas Huth

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'



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-06 13:03   ` Philippe Mathieu-Daudé
@ 2020-02-06 13:05     ` Philippe Mathieu-Daudé
  2020-03-10  3:53       ` Cleber Rosa
  2020-02-06 13:52     ` Wainer dos Santos Moschetta
  1 sibling, 1 reply; 24+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-06 13:05 UTC (permalink / raw)
  To: Cleber Rosa, qemu-devel; +Cc: Peter Maydell, Thomas Huth

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.



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-06 13:03   ` Philippe Mathieu-Daudé
  2020-02-06 13:05     ` Philippe Mathieu-Daudé
@ 2020-02-06 13:52     ` Wainer dos Santos Moschetta
  2020-02-06 13:54       ` Philippe Mathieu-Daudé
  1 sibling, 1 reply; 24+ messages in thread
From: Wainer dos Santos Moschetta @ 2020-02-06 13:52 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, Cleber Rosa, qemu-devel
  Cc: Peter Maydell, Thomas Huth


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

>
>
>



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-06 13:52     ` Wainer dos Santos Moschetta
@ 2020-02-06 13:54       ` Philippe Mathieu-Daudé
  2020-02-06 15:13         ` Thomas Huth
  0 siblings, 1 reply; 24+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-06 13:54 UTC (permalink / raw)
  To: Wainer dos Santos Moschetta, Cleber Rosa, qemu-devel
  Cc: Peter Maydell, Thomas Huth

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.



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-06 13:54       ` Philippe Mathieu-Daudé
@ 2020-02-06 15:13         ` Thomas Huth
  0 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2020-02-06 15:13 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé,
	Wainer dos Santos Moschetta, Cleber Rosa, qemu-devel
  Cc: Peter Maydell

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



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-03  3:23 ` [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs Cleber Rosa
  2020-02-03 17:36   ` Wainer dos Santos Moschetta
  2020-02-06 13:03   ` Philippe Mathieu-Daudé
@ 2020-02-07  8:37   ` Thomas Huth
  2020-02-07 10:05     ` Thomas Huth
                       ` (3 more replies)
  2 siblings, 4 replies; 24+ messages in thread
From: Thomas Huth @ 2020-02-07  8:37 UTC (permalink / raw)
  To: Cleber Rosa, qemu-devel; +Cc: Peter Maydell, Alex Bennée, Stefan Hajnoczi

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



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-07  8:37   ` Thomas Huth
@ 2020-02-07 10:05     ` Thomas Huth
  2020-02-07 11:08     ` Alex Bennée
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 24+ messages in thread
From: Thomas Huth @ 2020-02-07 10:05 UTC (permalink / raw)
  To: Cleber Rosa, qemu-devel; +Cc: Peter Maydell, Alex Bennée, Stefan Hajnoczi

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



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-07  8:37   ` Thomas Huth
  2020-02-07 10:05     ` Thomas Huth
@ 2020-02-07 11:08     ` Alex Bennée
  2020-02-07 19:59       ` Cleber Rosa
  2020-02-07 16:26     ` Peter Maydell
  2020-02-07 19:46     ` Cleber Rosa
  3 siblings, 1 reply; 24+ messages in thread
From: Alex Bennée @ 2020-02-07 11:08 UTC (permalink / raw)
  To: Thomas Huth; +Cc: Peter Maydell, qemu-devel, Stefan Hajnoczi, Cleber Rosa


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>

-- 
Alex Bennée


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-07  8:37   ` Thomas Huth
  2020-02-07 10:05     ` Thomas Huth
  2020-02-07 11:08     ` Alex Bennée
@ 2020-02-07 16:26     ` Peter Maydell
  2020-02-07 19:27       ` Cleber Rosa
  2020-02-07 19:46     ` Cleber Rosa
  3 siblings, 1 reply; 24+ messages in thread
From: Peter Maydell @ 2020-02-07 16:26 UTC (permalink / raw)
  To: Thomas Huth
  Cc: Alex Bennée, QEMU Developers, Stefan Hajnoczi, Cleber Rosa

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


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-07 16:26     ` Peter Maydell
@ 2020-02-07 19:27       ` Cleber Rosa
  2020-02-08 12:51         ` Peter Maydell
  0 siblings, 1 reply; 24+ messages in thread
From: Cleber Rosa @ 2020-02-07 19:27 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Thomas Huth, Alex Bennée, QEMU Developers, Stefan Hajnoczi

[-- Attachment #1: Type: text/plain, Size: 3651 bytes --]

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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-03 17:36   ` Wainer dos Santos Moschetta
@ 2020-02-07 19:34     ` Cleber Rosa
  2020-02-08 13:02       ` Peter Maydell
  0 siblings, 1 reply; 24+ messages in thread
From: Cleber Rosa @ 2020-02-07 19:34 UTC (permalink / raw)
  To: Wainer dos Santos Moschetta; +Cc: Peter Maydell, Thomas Huth, qemu-devel

[-- Attachment #1: Type: text/plain, Size: 8245 bytes --]

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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-07  8:37   ` Thomas Huth
                       ` (2 preceding siblings ...)
  2020-02-07 16:26     ` Peter Maydell
@ 2020-02-07 19:46     ` Cleber Rosa
  3 siblings, 0 replies; 24+ messages in thread
From: Cleber Rosa @ 2020-02-07 19:46 UTC (permalink / raw)
  To: Thomas Huth; +Cc: Peter Maydell, Alex Bennée, qemu-devel, Stefan Hajnoczi

[-- Attachment #1: Type: text/plain, Size: 8261 bytes --]

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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-07 11:08     ` Alex Bennée
@ 2020-02-07 19:59       ` Cleber Rosa
  0 siblings, 0 replies; 24+ messages in thread
From: Cleber Rosa @ 2020-02-07 19:59 UTC (permalink / raw)
  To: Alex Bennée; +Cc: Peter Maydell, Thomas Huth, qemu-devel, Stefan Hajnoczi

[-- Attachment #1: Type: text/plain, Size: 1491 bytes --]

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
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 1/2] GitLab CI: avoid calling before_scripts on unintended jobs
  2020-02-03 16:08 ` Thomas Huth
@ 2020-02-07 20:01   ` Cleber Rosa
  0 siblings, 0 replies; 24+ messages in thread
From: Cleber Rosa @ 2020-02-07 20:01 UTC (permalink / raw)
  To: Thomas Huth; +Cc: Peter Maydell, qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1769 bytes --]

On Mon, Feb 03, 2020 at 05:08:58PM +0100, Thomas Huth wrote:
> On 03/02/2020 04.23, Cleber Rosa wrote:
> > At this point it seems that all jobs depend on those steps, with
> > maybe the EDK2 jobs as exceptions.
> > 
> > The jobs that will be added will not want those scripts to be
> > run, so let's move these steps to the appropriate jobs, while
> > still trying to avoid repetition.
> > 
> > Signed-off-by: Cleber Rosa <crosa@redhat.com>
> > ---
> >  .gitlab-ci.yml | 17 ++++++++++++++---
> >  1 file changed, 14 insertions(+), 3 deletions(-)
> > 
> > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> > index 228783993e..d2c7d2198e 100644
> > --- a/.gitlab-ci.yml
> > +++ b/.gitlab-ci.yml
> > @@ -1,11 +1,10 @@
> >  include:
> >    - local: '/.gitlab-ci-edk2.yml'
> >  
> > -before_script:
> > +build-system1:
> > + before_script: &before_scr_apt
> >   - apt-get update -qq
> >   - apt-get install -y -qq flex bison libglib2.0-dev libpixman-1-dev genisoimage
> > -
> > -build-system1:
> >   script:
> >   - apt-get install -y -qq libgtk-3-dev libvte-dev nettle-dev libcacard-dev
> >        libusb-dev libvde-dev libspice-protocol-dev libgl1-mesa-dev libvdeplug-dev
> 
> I'm not very familiar with these anchors yet, but would it maybe be
> possible to keep the "template" out of build-system1 ? Something like
> they show on https://docs.gitlab.com/ee/ci/yaml/#anchors ?
>

Me neither!  In fact, thanks for the link above (I simply replayed
something I did on another YAML file and validated it on the GitLab CI
linter).

> Anyway, patch is also fine for me in its current shape, so FWIW:
> 
> Acked-by: Thomas Huth <thuth@redhat.com>

I'll check out the other possible approaches and let you know.

Thanks,
- Cleber.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-07 19:27       ` Cleber Rosa
@ 2020-02-08 12:51         ` Peter Maydell
  0 siblings, 0 replies; 24+ messages in thread
From: Peter Maydell @ 2020-02-08 12:51 UTC (permalink / raw)
  To: Cleber Rosa
  Cc: Thomas Huth, Alex Bennée, QEMU Developers, Stefan Hajnoczi

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


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-07 19:34     ` Cleber Rosa
@ 2020-02-08 13:02       ` Peter Maydell
  2020-03-10  5:01         ` Cleber Rosa
  0 siblings, 1 reply; 24+ messages in thread
From: Peter Maydell @ 2020-02-08 13:02 UTC (permalink / raw)
  To: Cleber Rosa; +Cc: Thomas Huth, QEMU Developers, Wainer dos Santos Moschetta

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


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-06 13:05     ` Philippe Mathieu-Daudé
@ 2020-03-10  3:53       ` Cleber Rosa
  0 siblings, 0 replies; 24+ messages in thread
From: Cleber Rosa @ 2020-03-10  3:53 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé; +Cc: Peter Maydell, Thomas Huth, qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1030 bytes --]

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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-02-08 13:02       ` Peter Maydell
@ 2020-03-10  5:01         ` Cleber Rosa
  2020-03-10  9:30           ` Peter Maydell
  0 siblings, 1 reply; 24+ messages in thread
From: Cleber Rosa @ 2020-03-10  5:01 UTC (permalink / raw)
  To: Peter Maydell; +Cc: Thomas Huth, QEMU Developers, Wainer dos Santos Moschetta

[-- Attachment #1: Type: text/plain, Size: 3625 bytes --]

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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs
  2020-03-10  5:01         ` Cleber Rosa
@ 2020-03-10  9:30           ` Peter Maydell
  0 siblings, 0 replies; 24+ messages in thread
From: Peter Maydell @ 2020-03-10  9:30 UTC (permalink / raw)
  To: Cleber Rosa; +Cc: Thomas Huth, QEMU Developers, Wainer dos Santos Moschetta

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


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2020-03-10  9:34 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-03  3:23 [RFC PATCH 1/2] GitLab CI: avoid calling before_scripts on unintended jobs Cleber Rosa
2020-02-03  3:23 ` [RFC PATCH 2/2] GitLab CI: crude mapping of PMM's scripts to jobs Cleber Rosa
2020-02-03 17:36   ` Wainer dos Santos Moschetta
2020-02-07 19:34     ` Cleber Rosa
2020-02-08 13:02       ` Peter Maydell
2020-03-10  5:01         ` Cleber Rosa
2020-03-10  9:30           ` Peter Maydell
2020-02-06 13:03   ` Philippe Mathieu-Daudé
2020-02-06 13:05     ` Philippe Mathieu-Daudé
2020-03-10  3:53       ` Cleber Rosa
2020-02-06 13:52     ` Wainer dos Santos Moschetta
2020-02-06 13:54       ` Philippe Mathieu-Daudé
2020-02-06 15:13         ` Thomas Huth
2020-02-07  8:37   ` Thomas Huth
2020-02-07 10:05     ` Thomas Huth
2020-02-07 11:08     ` Alex Bennée
2020-02-07 19:59       ` Cleber Rosa
2020-02-07 16:26     ` Peter Maydell
2020-02-07 19:27       ` Cleber Rosa
2020-02-08 12:51         ` Peter Maydell
2020-02-07 19:46     ` Cleber Rosa
2020-02-03 15:26 ` [RFC PATCH 1/2] GitLab CI: avoid calling before_scripts on unintended jobs Wainer dos Santos Moschetta
2020-02-03 16:08 ` Thomas Huth
2020-02-07 20:01   ` Cleber Rosa

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.