diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bbe82bae54cee..6e5e1a3c7a334 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -272,9 +272,9 @@ jobs: - run: > podman run --init --privileged --rm -it -v $(pwd):$(pwd) -w $(pwd) docker.io/pbolinaro/qemu-ci:debian-all-test-cross - bash -cx "env ASAN_OPTIONS=detect_leaks=0 make -k check-tcg" + bash -cx "env ASAN_OPTIONS=detect_leaks=0 make -k -j $(nproc) check-tcg" - # run all meson tests, including functional. Run -j1 to avoid sporadic issues. + # run all meson tests, except functional. # block tests are not ran because they don't support sanitizers: # https://gitlab.com/qemu-project/qemu/-/blob/master/tests/qemu-iotests/meson.build check: @@ -291,7 +291,24 @@ jobs: - run: > podman run --init --privileged --rm -it -v /dev/kvm:/dev/kvm -v $(pwd):$(pwd) -w $(pwd) docker.io/pbolinaro/qemu-ci:debian-precache-tests - bash -cx "env ASAN_OPTIONS=detect_leaks=0 make -k check SPEED=thorough TIMEOUT_MULTIPLIER=5 V=1" + bash -cx "env ASAN_OPTIONS=detect_leaks=0 ./build/pyvenv/bin/meson test -C build --setup thorough --no-suite func-quick --no-suite func-thorough -t 5 --print-errorlogs" + + check-functional: + needs: checkapply + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + # we use image with download cache filled. Solves servers flakiness. + - run: > + podman run --init --rm -it -v $(pwd):$(pwd) -w $(pwd) + docker.io/pbolinaro/qemu-ci:debian-precache-tests + bash -cx './configure --disable-docs --enable-debug-tcg --enable-debug-graph-lock --enable-debug-mutex --enable-asan --enable-ubsan && ninja -C build' + - run: sudo chown $USER:$USER /dev/kvm + - run: > + podman run --init --privileged --rm -it -v /dev/kvm:/dev/kvm -v $(pwd):$(pwd) -w $(pwd) + docker.io/pbolinaro/qemu-ci:debian-precache-tests + bash -cx "env ASAN_OPTIONS=detect_leaks=0 ./build/pyvenv/bin/meson test -C build --setup thorough --suite func-quick --suite func-thorough -j $(($(nproc) / 2)) -t 5 --print-errorlogs" + # Limit parallelism because it creates timeout. # iotests do not support sanitizers, so we run them in their own job check-block: @@ -308,7 +325,7 @@ jobs: - run: > podman run --init --privileged --rm -it -v /dev/kvm:/dev/kvm -v $(pwd):$(pwd) -w $(pwd) docker.io/pbolinaro/qemu-ci:debian-precache-tests - bash -cx "./build/pyvenv/bin/meson test -C build --suite block --suite block-slow --suite block-thorough -j 1 --timeout-multiplier 5 --verbose" + bash -cx "./build/pyvenv/bin/meson test -C build --setup thorough --suite block --suite block-slow --suite block-thorough -t 5 --print-errorlogs" check-avocado: needs: checkapply