-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'remotes/stsquad/tags/pull-testing-and-p…
…lugins-140721-5' into staging Testing and plugin updates: - custom runner playbooks for configuring GitLab runners - integrate Cirrus jobs into GitLab via cirrus-run - clean-up docker package lists - bump NetBSD to 9.2 - bump OpenBSD to 6.9 - make test-mmap more hexagon friendly - fixup handling of hostaddr for plugins - disallow some incompatible plugin configurations - fix handling of -ldl for BSDs - remove some old unused symbols from the plugin symbol map - enable plugins by default for most TCG builds - honour main build -Wall settings for plugins - new execlog plugin - new cache modelling plugin - fix io_uring build regression - disable modular TCG on Darwin # gpg: Signature made Wed 14 Jul 2021 15:56:27 BST # gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44 # gpg: Good signature from "Alex Bennée (Master Work Key) <[email protected]>" [full] # Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44 * remotes/stsquad/tags/pull-testing-and-plugins-140721-5: (44 commits) MAINTAINERS: Added myself as a reviewer for TCG Plugins docs/devel: Added cache plugin to the plugins docs plugins/cache: Added FIFO and LRU eviction policies plugins/cache: Enable cache parameterization plugins: Added a new cache modelling plugin docs/devel: tcg-plugins: add execlog plugin description contrib/plugins: add execlog to log instruction execution and memory access contrib/plugins: enable -Wall for building plugins tcg/plugins: enable by default for most TCG builds configure: stop user enabling plugins on Windows for now configure: add an explicit static and plugins check configure: don't allow plugins to be enabled for a non-TCG build tcg/plugins: remove some stale entries from the symbol list meson.build: relax the libdl test to one for the function dlopen meson.build: move TCG plugin summary output plugins: fix-up handling of internal hostaddr for 32 bit tests/tcg: make test-mmap a little less aggressive tests/vm: update openbsd to release 6.9 tests/vm: update NetBSD to 9.2 tests/docker: expand opensuse-leap package list ... Signed-off-by: Peter Maydell <[email protected]>
Showing
59 changed files
with
2,229 additions
and
381 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
# Jobs that we delegate to Cirrus CI because they require an operating | ||
# system other than Linux. These jobs will only run if the required | ||
# setup has been performed on the GitLab account. | ||
# | ||
# The Cirrus CI configuration is generated by replacing target-specific | ||
# variables in a generic template: some of these variables are provided | ||
# when the GitLab CI job is defined, others are taken from a shell | ||
# snippet generated using lcitool. | ||
# | ||
# Note that the $PATH environment variable has to be treated with | ||
# special care, because we can't just override it at the GitLab CI job | ||
# definition level or we risk breaking it completely. | ||
.cirrus_build_job: | ||
stage: build | ||
image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master | ||
needs: [] | ||
allow_failure: true | ||
script: | ||
- source .gitlab-ci.d/cirrus/$NAME.vars | ||
- sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g" | ||
-e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g" | ||
-e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g" | ||
-e "s|[@]CIRRUS_VM_INSTANCE_TYPE@|$CIRRUS_VM_INSTANCE_TYPE|g" | ||
-e "s|[@]CIRRUS_VM_IMAGE_SELECTOR@|$CIRRUS_VM_IMAGE_SELECTOR|g" | ||
-e "s|[@]CIRRUS_VM_IMAGE_NAME@|$CIRRUS_VM_IMAGE_NAME|g" | ||
-e "s|[@]CIRRUS_VM_CPUS@|$CIRRUS_VM_CPUS|g" | ||
-e "s|[@]CIRRUS_VM_RAM@|$CIRRUS_VM_RAM|g" | ||
-e "s|[@]UPDATE_COMMAND@|$UPDATE_COMMAND|g" | ||
-e "s|[@]INSTALL_COMMAND@|$INSTALL_COMMAND|g" | ||
-e "s|[@]PATH@|$PATH_EXTRA${PATH_EXTRA:+:}\$PATH|g" | ||
-e "s|[@]PKG_CONFIG_PATH@|$PKG_CONFIG_PATH|g" | ||
-e "s|[@]PKGS@|$PKGS|g" | ||
-e "s|[@]MAKE@|$MAKE|g" | ||
-e "s|[@]PYTHON@|$PYTHON|g" | ||
-e "s|[@]PIP3@|$PIP3|g" | ||
-e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g" | ||
-e "s|[@]CONFIGURE_ARGS@|$CONFIGURE_ARGS|g" | ||
-e "s|[@]TEST_TARGETSS@|$TEST_TARGETSS|g" | ||
<.gitlab-ci.d/cirrus/build.yml >.gitlab-ci.d/cirrus/$NAME.yml | ||
- cat .gitlab-ci.d/cirrus/$NAME.yml | ||
- cirrus-run -v --show-build-log always .gitlab-ci.d/cirrus/$NAME.yml | ||
rules: | ||
- if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN" | ||
|
||
x64-freebsd-12-build: | ||
extends: .cirrus_build_job | ||
variables: | ||
NAME: freebsd-12 | ||
CIRRUS_VM_INSTANCE_TYPE: freebsd_instance | ||
CIRRUS_VM_IMAGE_SELECTOR: image_family | ||
CIRRUS_VM_IMAGE_NAME: freebsd-12-2 | ||
CIRRUS_VM_CPUS: 8 | ||
CIRRUS_VM_RAM: 8G | ||
UPDATE_COMMAND: pkg update | ||
INSTALL_COMMAND: pkg install -y | ||
# TODO: Enable gnutls again once FreeBSD's libtasn1 got fixed | ||
# See: https://gitlab.com/gnutls/libtasn1/-/merge_requests/71 | ||
CONFIGURE_ARGS: --disable-gnutls | ||
TEST_TARGETS: check | ||
|
||
x64-freebsd-13-build: | ||
extends: .cirrus_build_job | ||
variables: | ||
NAME: freebsd-13 | ||
CIRRUS_VM_INSTANCE_TYPE: freebsd_instance | ||
CIRRUS_VM_IMAGE_SELECTOR: image_family | ||
CIRRUS_VM_IMAGE_NAME: freebsd-13-0 | ||
CIRRUS_VM_CPUS: 8 | ||
CIRRUS_VM_RAM: 8G | ||
UPDATE_COMMAND: pkg update | ||
INSTALL_COMMAND: pkg install -y | ||
TEST_TARGETS: check | ||
|
||
x64-macos-11-base-build: | ||
extends: .cirrus_build_job | ||
variables: | ||
NAME: macos-11 | ||
CIRRUS_VM_INSTANCE_TYPE: osx_instance | ||
CIRRUS_VM_IMAGE_SELECTOR: image | ||
CIRRUS_VM_IMAGE_NAME: big-sur-base | ||
CIRRUS_VM_CPUS: 12 | ||
CIRRUS_VM_RAM: 24G | ||
UPDATE_COMMAND: brew update | ||
INSTALL_COMMAND: brew install | ||
PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin | ||
PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig | ||
TEST_TARGETS: check-unit check-block check-qapi-schema check-softfloat check-qtest-x86_64 | ||
|
||
x64-macos-11-xcode-build: | ||
extends: .cirrus_build_job | ||
variables: | ||
NAME: macos-11 | ||
CIRRUS_VM_INSTANCE_TYPE: osx_instance | ||
CIRRUS_VM_IMAGE_SELECTOR: image | ||
CIRRUS_VM_IMAGE_NAME: big-sur-xcode | ||
CIRRUS_VM_CPUS: 12 | ||
CIRRUS_VM_RAM: 24G | ||
UPDATE_COMMAND: brew update | ||
INSTALL_COMMAND: brew install | ||
PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin | ||
PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig | ||
TEST_TARGETS: check-unit check-block check-qapi-schema check-softfloat check-qtest-x86_64 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
Cirrus CI integration | ||
===================== | ||
|
||
GitLab CI shared runners only provide a docker environment running on Linux. | ||
While it is possible to provide private runners for non-Linux platforms this | ||
is not something most contributors/maintainers will wish to do. | ||
|
||
To work around this limitation, we take advantage of `Cirrus CI`_'s free | ||
offering: more specifically, we use the `cirrus-run`_ script to trigger Cirrus | ||
CI jobs from GitLab CI jobs so that Cirrus CI job output is integrated into | ||
the main GitLab CI pipeline dashboard. | ||
|
||
There is, however, some one-time setup required. If you want FreeBSD and macOS | ||
builds to happen when you push to your GitLab repository, you need to | ||
|
||
* set up a GitHub repository for the project, eg. ``yourusername/qemu``. | ||
This repository needs to exist for cirrus-run to work, but it doesn't need to | ||
be kept up to date, so you can create it and then forget about it; | ||
|
||
* enable the `Cirrus CI GitHub app`_ for your GitHub account; | ||
|
||
* sign up for Cirrus CI. It's enough to log into the website using your GitHub | ||
account; | ||
|
||
* grab an API token from the `Cirrus CI settings`_ page; | ||
|
||
* it may be necessary to push an empty ``.cirrus.yml`` file to your github fork | ||
for Cirrus CI to properly recognize the project. You can check whether | ||
Cirrus CI knows about your project by navigating to: | ||
|
||
``https://cirrus-ci.com/yourusername/qemu`` | ||
|
||
* in the *CI/CD / Variables* section of the settings page for your GitLab | ||
repository, create two new variables: | ||
|
||
* ``CIRRUS_GITHUB_REPO``, containing the name of the GitHub repository | ||
created earlier, eg. ``yourusername/qemu``; | ||
|
||
* ``CIRRUS_API_TOKEN``, containing the Cirrus CI API token generated earlier. | ||
This variable **must** be marked as *Masked*, because anyone with knowledge | ||
of it can impersonate you as far as Cirrus CI is concerned. | ||
|
||
Neither of these variables should be marked as *Protected*, because in | ||
general you'll want to be able to trigger Cirrus CI builds from non-protected | ||
branches. | ||
|
||
Once this one-time setup is complete, you can just keep pushing to your GitLab | ||
repository as usual and you'll automatically get the additional CI coverage. | ||
|
||
|
||
.. _Cirrus CI GitHub app: https://github.com/marketplace/cirrus-ci | ||
.. _Cirrus CI settings: https://cirrus-ci.com/settings/profile/ | ||
.. _Cirrus CI: https://cirrus-ci.com/ | ||
.. _cirrus-run: https://github.com/sio/cirrus-run/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
@CIRRUS_VM_INSTANCE_TYPE@: | ||
@CIRRUS_VM_IMAGE_SELECTOR@: @CIRRUS_VM_IMAGE_NAME@ | ||
cpu: @CIRRUS_VM_CPUS@ | ||
memory: @CIRRUS_VM_RAM@ | ||
|
||
env: | ||
CIRRUS_CLONE_DEPTH: 1 | ||
CI_REPOSITORY_URL: "@CI_REPOSITORY_URL@" | ||
CI_COMMIT_REF_NAME: "@CI_COMMIT_REF_NAME@" | ||
CI_COMMIT_SHA: "@CI_COMMIT_SHA@" | ||
PATH: "@PATH@" | ||
PKG_CONFIG_PATH: "@PKG_CONFIG_PATH@" | ||
PYTHON: "@PYTHON@" | ||
MAKE: "@MAKE@" | ||
CONFIGURE_ARGS: "@CONFIGURE_ARGS@" | ||
|
||
build_task: | ||
install_script: | ||
- @UPDATE_COMMAND@ | ||
- @INSTALL_COMMAND@ @PKGS@ | ||
- if test -n "@PYPI_PKGS@" ; then @PIP3@ install @PYPI_PKGS@ ; fi | ||
clone_script: | ||
- git clone --depth 100 "$CI_REPOSITORY_URL" . | ||
- git fetch origin "$CI_COMMIT_REF_NAME" | ||
- git reset --hard "$CI_COMMIT_SHA" | ||
build_script: | ||
- mkdir build | ||
- cd build | ||
- ../configure --enable-werror $CONFIGURE_ARGS | ||
|| { cat config.log meson-logs/meson-log.txt; exit 1; } | ||
- $MAKE -j$(sysctl -n hw.ncpu) | ||
- for TARGET in $TEST_TARGETS ; | ||
do | ||
$MAKE -j$(sysctl -n hw.ncpu) $TARGET V=1 ; | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# THIS FILE WAS AUTO-GENERATED | ||
# | ||
# $ lcitool variables freebsd-12 qemu | ||
# | ||
# https://gitlab.com/libvirt/libvirt-ci/-/commit/c7e275ab27ac0dcd09da290817b9adeea1fd1eb1 | ||
|
||
PACKAGING_COMMAND='pkg' | ||
CCACHE='/usr/local/bin/ccache' | ||
MAKE='/usr/local/bin/gmake' | ||
NINJA='/usr/local/bin/ninja' | ||
PYTHON='/usr/local/bin/python3' | ||
PIP3='/usr/local/bin/pip-3.8' | ||
PKGS='alsa-lib bash bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage ctags curl cyrus-sasl dbus diffutils gettext git glib gmake gnutls gsed gtk3 libepoxy libffi libgcrypt libjpeg-turbo libnfs libspice-server libssh libtasn1 libxml2 llvm lttng-ust lzo2 meson ncurses nettle ninja opencv p5-Test-Harness perl5 pixman pkgconf png py38-numpy py38-pillow py38-pip py38-sphinx py38-sphinx_rtd_theme py38-virtualenv py38-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# THIS FILE WAS AUTO-GENERATED | ||
# | ||
# $ lcitool variables freebsd-13 qemu | ||
# | ||
# https://gitlab.com/libvirt/libvirt-ci/-/commit/c7e275ab27ac0dcd09da290817b9adeea1fd1eb1 | ||
|
||
PACKAGING_COMMAND='pkg' | ||
CCACHE='/usr/local/bin/ccache' | ||
MAKE='/usr/local/bin/gmake' | ||
NINJA='/usr/local/bin/ninja' | ||
PYTHON='/usr/local/bin/python3' | ||
PIP3='/usr/local/bin/pip-3.8' | ||
PKGS='alsa-lib bash bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage ctags curl cyrus-sasl dbus diffutils gettext git glib gmake gnutls gsed gtk3 libepoxy libffi libgcrypt libjpeg-turbo libnfs libspice-server libssh libtasn1 libxml2 llvm lttng-ust lzo2 meson ncurses nettle ninja opencv p5-Test-Harness perl5 pixman pkgconf png py38-numpy py38-pillow py38-pip py38-sphinx py38-sphinx_rtd_theme py38-virtualenv py38-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# THIS FILE WAS AUTO-GENERATED | ||
# | ||
# $ lcitool variables macos-11 qemu | ||
# | ||
# https://gitlab.com/libvirt/libvirt-ci/-/commit/c7e275ab27ac0dcd09da290817b9adeea1fd1eb1 | ||
|
||
PACKAGING_COMMAND='brew' | ||
CCACHE='/usr/local/bin/ccache' | ||
MAKE='/usr/local/bin/gmake' | ||
NINJA='/usr/local/bin/ninja' | ||
PYTHON='/usr/local/bin/python3' | ||
PIP3='/usr/local/bin/pip3' | ||
PKGS='bash bc bzip2 capstone ccache cpanminus ctags curl dbus diffutils gcovr gettext git glib gnu-sed gnutls gtk+3 jemalloc jpeg-turbo libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb libxml2 llvm lzo make meson ncurses nettle ninja perl pixman pkg-config python3 rpm2cpio sdl2 sdl2_image snappy sparse spice-protocol tesseract texinfo usbredir vde vte3 zlib zstd' | ||
PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme virtualenv' | ||
CPAN_PKGS='Test::Harness' |
Oops, something went wrong.