aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2021-07-29 13:17:20 +0100
committerPeter Maydell <peter.maydell@linaro.org>2021-07-29 13:17:20 +0100
commit3521ade3510eb5cefb2e27a101667f25dad89935 (patch)
tree9f906ec56cfc1773869bc3db20d15f185f8a9930
parentefba2eebdf103218d47eac7a4247949779f80885 (diff)
parentb8ee198d21c4bab41b8cb8d1729a956d9f648997 (diff)
downloadqemu-3521ade3510eb5cefb2e27a101667f25dad89935.zip
qemu-3521ade3510eb5cefb2e27a101667f25dad89935.tar.gz
qemu-3521ade3510eb5cefb2e27a101667f25dad89935.tar.bz2
Merge remote-tracking branch 'remotes/thuth-gitlab/tags/pull-request-2021-07-29' into staging
* Document GitLab custom CI/CD variables * Fix 'when:' condition in gitlab-CI jobs * Disable tests in the gitlab-CI that fail due to out-of-memory conditions * Allow pushing to "staging" again for maintainers without s390x access * Fix migration-test build failure on SPARC * Compile without "pie" on Haiku # gpg: Signature made Thu 29 Jul 2021 07:17:17 BST # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * remotes/thuth-gitlab/tags/pull-request-2021-07-29: configure script fix for Haiku tests: Fix migration-test build failure for sparc gitlab-ci.d/custom-runners: Improve rules for the staging branch gitlab-ci.d/buildtest: Mark the aarch64 and ppc64-s390x CFI jobs as manual gitlab-ci.d/buildtest: Disable iotests 197 and 215 gitlab-ci: Fix 'when:' condition in OpenSBI jobs gitlab-ci: Fix 'when:' condition in EDK2 jobs gitlab-ci: Fix 'when:' condition in acceptance_test_job_template docs: Document GitLab custom CI/CD variables Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--.gitlab-ci.d/buildtest-template.yml4
-rw-r--r--.gitlab-ci.d/buildtest.yml18
-rw-r--r--.gitlab-ci.d/custom-runners.yml40
-rw-r--r--.gitlab-ci.d/edk2.yml6
-rw-r--r--.gitlab-ci.d/opensbi.yml8
-rw-r--r--.gitlab-ci.yml19
-rwxr-xr-xconfigure3
-rw-r--r--docs/devel/ci.rst40
-rw-r--r--tests/qtest/migration-test.c5
9 files changed, 99 insertions, 44 deletions
diff --git a/.gitlab-ci.d/buildtest-template.yml b/.gitlab-ci.d/buildtest-template.yml
index 3e3e19d..fcbcc4e 100644
--- a/.gitlab-ci.d/buildtest-template.yml
+++ b/.gitlab-ci.d/buildtest-template.yml
@@ -73,9 +73,9 @@
# in its namespace setting or via git-push option, see documentation
# in /.gitlab-ci.yml of this repository).
- if: '$CI_PROJECT_NAMESPACE == "qemu-project"'
- when: always
+ when: on_success
- if: '$QEMU_CI_AVOCADO_TESTING'
- when: always
+ when: on_success
# Otherwise, set to manual (the jobs are created but not run).
- when: manual
allow_failure: true
diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index ee0c83b..903ee65 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -305,10 +305,10 @@ build-tcg-disabled:
- cd tests/qemu-iotests/
- ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048
052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163
- 170 171 183 184 192 194 197 208 215 221 222 226 227 236 253 277
+ 170 171 183 184 192 194 208 221 222 226 227 236 253 277
- ./check -qcow2 028 051 056 057 058 065 068 082 085 091 095 096 102 122
- 124 132 139 142 144 145 151 152 155 157 165 194 196 197 200 202
- 208 209 215 216 218 222 227 234 246 247 248 250 254 255 257 258
+ 124 132 139 142 144 145 151 152 155 157 165 194 196 200 202
+ 208 209 216 218 222 227 234 246 247 248 250 254 255 257 258
260 261 262 263 264 270 272 273 277 279
build-user:
@@ -416,6 +416,12 @@ build-cfi-aarch64:
expire_in: 2 days
paths:
- build
+ rules:
+ # FIXME: This job is often failing, likely due to out-of-memory problems in
+ # the constrained containers of the shared runners. Thus this is marked as
+ # manual until the situation has been solved.
+ - when: manual
+ allow_failure: true
check-cfi-aarch64:
extends: .native_test_job_template
@@ -452,6 +458,12 @@ build-cfi-ppc64-s390x:
expire_in: 2 days
paths:
- build
+ rules:
+ # FIXME: This job is often failing, likely due to out-of-memory problems in
+ # the constrained containers of the shared runners. Thus this is marked as
+ # manual until the situation has been solved.
+ - when: manual
+ allow_failure: true
check-cfi-ppc64-s390x:
extends: .native_test_job_template
diff --git a/.gitlab-ci.d/custom-runners.yml b/.gitlab-ci.d/custom-runners.yml
index 061d3cd..564b945 100644
--- a/.gitlab-ci.d/custom-runners.yml
+++ b/.gitlab-ci.d/custom-runners.yml
@@ -24,7 +24,8 @@ ubuntu-18.04-s390x-all-linux-static:
- ubuntu_18.04
- s390x
rules:
- - if: '$CI_COMMIT_BRANCH =~ /^staging/'
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+ - if: "$S390X_RUNNER_AVAILABLE"
script:
# --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
@@ -43,7 +44,8 @@ ubuntu-18.04-s390x-all:
- ubuntu_18.04
- s390x
rules:
- - if: '$CI_COMMIT_BRANCH =~ /^staging/'
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+ - if: "$S390X_RUNNER_AVAILABLE"
script:
- mkdir build
- cd build
@@ -59,7 +61,8 @@ ubuntu-18.04-s390x-alldbg:
- ubuntu_18.04
- s390x
rules:
- - if: '$CI_COMMIT_BRANCH =~ /^staging/'
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+ - if: "$S390X_RUNNER_AVAILABLE"
script:
- mkdir build
- cd build
@@ -76,7 +79,9 @@ ubuntu-18.04-s390x-clang:
- ubuntu_18.04
- s390x
rules:
- - if: '$CI_COMMIT_BRANCH =~ /^staging/'
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+ when: manual
+ - if: "$S390X_RUNNER_AVAILABLE"
when: manual
script:
- mkdir build
@@ -93,7 +98,8 @@ ubuntu-18.04-s390x-tci:
- ubuntu_18.04
- s390x
rules:
- - if: '$CI_COMMIT_BRANCH =~ /^staging/'
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+ - if: "$S390X_RUNNER_AVAILABLE"
script:
- mkdir build
- cd build
@@ -108,7 +114,9 @@ ubuntu-18.04-s390x-notcg:
- ubuntu_18.04
- s390x
rules:
- - if: '$CI_COMMIT_BRANCH =~ /^staging/'
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+ when: manual
+ - if: "$S390X_RUNNER_AVAILABLE"
when: manual
script:
- mkdir build
@@ -128,7 +136,8 @@ ubuntu-20.04-aarch64-all-linux-static:
- ubuntu_20.04
- aarch64
rules:
- - if: '$CI_COMMIT_BRANCH =~ /^staging/'
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+ - if: "$S390X_RUNNER_AVAILABLE"
script:
# --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
@@ -147,7 +156,8 @@ ubuntu-20.04-aarch64-all:
- ubuntu_20.04
- aarch64
rules:
- - if: '$CI_COMMIT_BRANCH =~ /^staging/'
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+ - if: "$S390X_RUNNER_AVAILABLE"
script:
- mkdir build
- cd build
@@ -163,7 +173,8 @@ ubuntu-20.04-aarch64-alldbg:
- ubuntu_20.04
- aarch64
rules:
- - if: '$CI_COMMIT_BRANCH =~ /^staging/'
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+ - if: "$S390X_RUNNER_AVAILABLE"
script:
- mkdir build
- cd build
@@ -180,7 +191,9 @@ ubuntu-20.04-aarch64-clang:
- ubuntu_20.04
- aarch64
rules:
- - if: '$CI_COMMIT_BRANCH =~ /^staging/'
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+ when: manual
+ - if: "$S390X_RUNNER_AVAILABLE"
when: manual
script:
- mkdir build
@@ -197,7 +210,8 @@ ubuntu-20.04-aarch64-tci:
- ubuntu_20.04
- aarch64
rules:
- - if: '$CI_COMMIT_BRANCH =~ /^staging/'
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+ - if: "$S390X_RUNNER_AVAILABLE"
script:
- mkdir build
- cd build
@@ -212,7 +226,9 @@ ubuntu-20.04-aarch64-notcg:
- ubuntu_20.04
- aarch64
rules:
- - if: '$CI_COMMIT_BRANCH =~ /^staging/'
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+ when: manual
+ - if: "$S390X_RUNNER_AVAILABLE"
when: manual
script:
- mkdir build
diff --git a/.gitlab-ci.d/edk2.yml b/.gitlab-ci.d/edk2.yml
index aae2f7a..62497ba 100644
--- a/.gitlab-ci.d/edk2.yml
+++ b/.gitlab-ci.d/edk2.yml
@@ -8,11 +8,11 @@
- .gitlab-ci.d/edk2/Dockerfile
# or roms/edk2/ is modified (submodule updated)
- roms/edk2/*
- when: always
+ when: on_success
- if: '$CI_COMMIT_REF_NAME =~ /^edk2/' # or the branch/tag starts with 'edk2'
- when: always
+ when: on_success
- if: '$CI_COMMIT_MESSAGE =~ /edk2/i' # or last commit description contains 'EDK2'
- when: always
+ when: on_success
docker-edk2:
extends: .edk2_job_rules
diff --git a/.gitlab-ci.d/opensbi.yml b/.gitlab-ci.d/opensbi.yml
index d8a0456..5e0a247 100644
--- a/.gitlab-ci.d/opensbi.yml
+++ b/.gitlab-ci.d/opensbi.yml
@@ -6,14 +6,14 @@
- .gitlab-ci.d/opensbi.yml
# or the Dockerfile is modified
- .gitlab-ci.d/opensbi/Dockerfile
- when: always
+ when: on_success
- changes: # or roms/opensbi/ is modified (submodule updated)
- roms/opensbi/*
- when: always
+ when: on_success
- if: '$CI_COMMIT_REF_NAME =~ /^opensbi/' # or the branch/tag starts with 'opensbi'
- when: always
+ when: on_success
- if: '$CI_COMMIT_MESSAGE =~ /opensbi/i' # or last commit description contains 'OpenSBI'
- when: always
+ when: on_success
docker-opensbi:
extends: .opensbi_job_rules
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6dc5385..9762dda 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,24 +16,9 @@
# QEMU CI jobs are based on templates. Some templates provide
# user-configurable options, modifiable via configuration variables.
#
-# These variables can be set globally in the user's CI namespace
-# setting:
-# https://docs.gitlab.com/ee/ci/variables/#create-a-custom-variable-in-the-ui
-# or set manually each time a branch/tag is pushed, as a git-push
-# command line argument:
-# https://docs.gitlab.com/ee/user/project/push_options.html#push-options-for-gitlab-cicd
+# See https://qemu-project.gitlab.io/qemu/devel/ci.html#custom-ci-cd-variables
+# for more information.
#
-# Example setting the QEMU_CI_EXAMPLE_VAR variable:
-#
-# git push -o ci.variable="QEMU_CI_EXAMPLE_VAR=value" myrepo mybranch
-#
-# ----------------------------------------------------------------------
-#
-# List of environment variables that can be use to modify the set
-# of jobs selected:
-#
-# - QEMU_CI_AVOCADO_TESTING
-# If set, tests using the Avocado framework will be run
include:
- local: '/.gitlab-ci.d/qemu-project.yml'
diff --git a/configure b/configure
index 79e2ddc..cd5e689 100755
--- a/configure
+++ b/configure
@@ -770,7 +770,8 @@ SunOS)
;;
Haiku)
haiku="yes"
- QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -D_BSD_SOURCE $QEMU_CFLAGS"
+ pie="no"
+ QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -D_BSD_SOURCE -fPIC $QEMU_CFLAGS"
;;
Linux)
audio_drv_list="try-pa oss"
diff --git a/docs/devel/ci.rst b/docs/devel/ci.rst
index b3bf3ef..2055725 100644
--- a/docs/devel/ci.rst
+++ b/docs/devel/ci.rst
@@ -8,6 +8,46 @@ found at::
https://wiki.qemu.org/Testing/CI
+Custom CI/CD variables
+======================
+
+QEMU CI pipelines can be tuned by setting some CI environment variables.
+
+Set variable globally in the user's CI namespace
+------------------------------------------------
+
+Variables can be set globally in the user's CI namespace setting.
+
+For further information about how to set these variables, please refer to::
+
+ https://docs.gitlab.com/ee/ci/variables/#add-a-cicd-variable-to-a-project
+
+Set variable manually when pushing a branch or tag to the user's repository
+---------------------------------------------------------------------------
+
+Variables can be set manually when pushing a branch or tag, using
+git-push command line arguments.
+
+Example setting the QEMU_CI_EXAMPLE_VAR variable:
+
+.. code::
+
+ git push -o ci.variable="QEMU_CI_EXAMPLE_VAR=value" myrepo mybranch
+
+For further information about how to set these variables, please refer to::
+
+ https://docs.gitlab.com/ee/user/project/push_options.html#push-options-for-gitlab-cicd
+
+Here is a list of the most used variables:
+
+QEMU_CI_AVOCADO_TESTING
+~~~~~~~~~~~~~~~~~~~~~~~
+By default, tests using the Avocado framework are not run automatically in
+the pipelines (because multiple artifacts have to be downloaded, and if
+these artifacts are not already cached, downloading them make the jobs
+reach the timeout limit). Set this variable to have the tests using the
+Avocado framework run automatically.
+
Jobs on Custom Runners
======================
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index 1e8b778..cc5e83d 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -27,7 +27,8 @@
#include "migration-helpers.h"
#include "tests/migration/migration-test.h"
-#if defined(__linux__)
+/* For dirty ring test; so far only x86_64 is supported */
+#if defined(__linux__) && defined(HOST_X86_64)
#include "linux/kvm.h"
#endif
@@ -1395,7 +1396,7 @@ static void test_multifd_tcp_cancel(void)
static bool kvm_dirty_ring_supported(void)
{
-#if defined(__linux__)
+#if defined(__linux__) && defined(HOST_X86_64)
int ret, kvm_fd = open("/dev/kvm", O_RDONLY);
if (kvm_fd < 0) {