summaryrefslogtreecommitdiffstats
path: root/.gitlab-ci.yml
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into stagingPeter Maydell2020-12-091-0/+11
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pc,pci,virtio: fixes, cleanups Lots of fixes, cleanups. CPU hot-unplug improvements. A new AER property for virtio devices, adding a dummy AER capability. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> # gpg: Signature made Wed 09 Dec 2020 18:04:28 GMT # gpg: using RSA key 5D09FD0871C8F85B94CA8A0D281F0DB8D28D5469 # gpg: issuer "mst@redhat.com" # gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" [full] # gpg: aka "Michael S. Tsirkin <mst@redhat.com>" [full] # Primary key fingerprint: 0270 606B 6F3C DF3D 0B17 0970 C350 3912 AFBE 8E67 # Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA 8A0D 281F 0DB8 D28D 5469 * remotes/mst/tags/for_upstream: (65 commits) hw/virtio-pci Added AER capability. hw/virtio-pci Added counter for pcie capabilities offsets. pcie_aer: Fix help message of pcie_aer_inject_error command x86: ich9: let firmware negotiate 'CPU hot-unplug with SMI' feature x86: ich9: factor out "guest_cpu_hotplug_features" tests/acpi: update expected files x86: acpi: let the firmware handle pending "CPU remove" events in SMM tests/acpi: allow expected files change x86: acpi: introduce AcpiPmInfo::smi_on_cpu_unplug acpi: cpuhp: introduce 'firmware performs eject' status/control bits hw/i386/pc: add max combined fw size as machine configuration option block/export: avoid g_return_val_if() input validation contrib/vhost-user-input: avoid g_return_val_if() input validation contrib/vhost-user-gpu: avoid g_return_val_if() input validation contrib/vhost-user-blk: avoid g_return_val_if() input validation .gitlab-ci: add build-libvhost-user libvhost-user: add a simple link test without glib libvhost-user: make it a meson subproject libvhost-user: drop qemu/osdep.h dependency libvhost-user: remove qemu/compiler.h usage ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * .gitlab-ci: add build-libvhost-userMarc-André Lureau2020-12-091-0/+11
| | | | | | | | | | | | | | Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20201125100640.366523-9-marcandre.lureau@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
* | gitlab-ci: Move coroutine tests across to gitlabPhilippe Mathieu-Daudé2020-12-091-0/+16
| | | | | | | | | | | | | | | | | | | | Similarly to commit 8cdb2cef3f1, move the coroutine tests to GitLab. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20201108204535.2319870-13-philmd@redhat.com> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com> [thuth: Replaced Travis by Gitlab-CI in comment] Signed-off-by: Thomas Huth <thuth@redhat.com>
* | gitlab-ci: Move user-static test across to gitlabPhilippe Mathieu-Daudé2020-12-091-0/+7
| | | | | | | | | | | | | | | | | | Similarly to commit 8cdb2cef3f1, move the user-static test to GitLab. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20201108204535.2319870-11-philmd@redhat.com> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
* | gitlab-ci: Update 'build-disabled' to cover all configurable optionsPhilippe Mathieu-Daudé2020-12-091-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add these missing options to the 'build-disabled' job: --disable-auth-pam (commit 8953caf3cd38) --disable-gcrypt (commit 91bfcdb01d48) --disable-keyring (commit 54e7aac05624) --disable-libudev (commit 5c53015a480b) --disable-opengl (commit da076ffed6b9) --disable-sparse (commit 03b4fe7de226) Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> [thuth: Dropped the unnecessary hunk with --disable-vhost-user-blk-server] Message-Id: <20201108204535.2319870-7-philmd@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
* | gitlab-ci: Split CONFIGURE_ARGS one argument per line for build-disabledPhilippe Mathieu-Daudé2020-12-091-17/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We will keep adding/removing options to our 'configure' script, so for easier maintainability it makes sense to have CONFIGURE_ARGS declared as one option per line. This way we can review diff easily (or rebase/cherry-pick). No logical change. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20201108204535.2319870-6-philmd@redhat.com> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
* | gitlab-ci: Document 'build-tcg-disabled' is a KVM X86 jobPhilippe Mathieu-Daudé2020-12-091-0/+5
|/ | | | | | | | | | Document what this job cover (build X86 targets with KVM being the single accelerator available). Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20201207131503.3858889-2-philmd@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab-ci: Move trace backend tests across to gitlabPhilippe Mathieu-Daudé2020-11-231-0/+18
| | | | | | | | | | | | | | Similarly to commit 8cdb2cef3f1, move the trace backend tests to GitLab. Note the User-Space Tracer backend is still tested on Ubuntu by the s390x jobs on Travis-CI. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Acked-by: Thomas Huth <thuth@redhat.com> Message-Id: <20201111121234.3246812-3-philmd@redhat.com> Message-Id: <20201117173635.29101-7-alex.bennee@linaro.org>
* gitlab: move remaining x86 check-tcg targets to gitlabAlex Bennée2020-11-231-0/+17
| | | | | | | | | | | | | | | | | | | | The GCC check-tcg (user) test in particular was very prone to timing out on Travis. We only actually need to move the some-softmmu builds across as we already have coverage for linux-user. As --enable-debug-tcg does increase the run time somewhat as more debug is put in let's restrict that to just the plugins build. It's unlikely that a plugins enabled build is going to hide a sanity failure in core TCG code so let the plugin builds do the heavy lifting on checking TCG sanity so the non-plugin builds can run swiftly. Now the only remaining check-tcg builds on Travis are for the various non-x86 arches. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-Id: <20201117173635.29101-5-alex.bennee@linaro.org>
* gitlab: force enable docs build in Fedora, Ubuntu, DebianDaniel P. Berrangé2020-11-101-1/+3
| | | | | | | | | | | | | Meson runs a test to see if Sphinx works, and automatically disables it on error. This can lead to the CI jobs skipping docs build without maintainers noticing the problem. Use --enable-docs to force a fatal error if Sphinx doesn't work on the jobs where we expect it to be OK. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20201102130926.161183-3-berrange@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab: publish the docs built during CIDaniel P. Berrangé2020-11-101-0/+14
| | | | | | | | | | | | | | | Most of the build jobs will create the sphinx documentation. If we expose this as an artifact of a "pages" job in a "public" directory, it will get published using GitLab Pages. This means a user can push a branch with docs changes to GitLab and view the results at https://yourusername.gitlab.io/qemu/ Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20201102130926.161183-2-berrange@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab-ci: Drop generic cache rulePhilippe Mathieu-Daudé2020-11-091-6/+0Star
| | | | | | | | | | This cache rule is meant for Avocado artifacts, but affects all jobs. Moreover the 'acceptance_template' template already include a more detailled rule to cache artifacts. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20201108221925.2344515-2-philmd@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab-ci: Clone from GitLab itselfPhilippe Mathieu-Daudé2020-10-271-0/+1
| | | | | | | | | | Let GitLab runners use GitLab repository directly. Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-Id: <20201022123302.2884788-1-philmd@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
* tests/acceptance: Enable AVOCADO_ALLOW_UNTRUSTED_CODE in the gitlab-CIThomas Huth2020-10-261-0/+1
| | | | | | | | | The tests are running in containers here, so it should be OK to run with AVOCADO_ALLOW_UNTRUSTED_CODE enabled in this case. Message-Id: <20201023073351.251332-4-thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
* ci: include configure and meson logs in all jobs if configure failsPaolo Bonzini2020-10-171-3/+3
| | | | | Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* Merge remote-tracking branch ↵Peter Maydell2020-10-131-2/+29
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'remotes/huth-gitlab/tags/pull-request-2020-10-13' into staging * qtest improvements (test for crash found with the fuzzer, increase downtime in migration test, less verbose output when running w/o KVM) * Improve handling of acceptance tests in the Gitlab-CI * Run checkpatch.pl in the Gitlab-CI * Improve the gitlab-pipeline-status script * Misc patches (mark 'moxie' as deprecated, remove stale .gitignore files, ...) # gpg: Signature made Tue 13 Oct 2020 11:49:06 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/huth-gitlab/tags/pull-request-2020-10-13: (23 commits) scripts/ci/gitlab-pipeline-status: wait for pipeline creation scripts/ci/gitlab-pipeline-status: use more descriptive exceptions scripts/ci/gitlab-pipeline-status: handle keyboard interrupts scripts/ci/gitlab-pipeline-status: refactor parser creation scripts/ci/gitlab-pipeline-status: give early feedback on running pipelines scripts/ci/gitlab-pipeline-status: improve message regarding timeout scripts/ci/gitlab-pipeline-status: make branch name configurable gitlab: assign python helper files to GitLab maintainers section gitlab: add a CI job to validate the DCO sign off gitlab: add a CI job for running checkpatch.pl configure: fixes indent of $meson setup docs/system/deprecated: Mark the 'moxie' CPU as deprecated Remove superfluous .gitignore files MAINTAINERS: Ignore bios-tables-test in the qtest section Add a comment in bios-tables-test.c to clarify the reason behind approach softmmu/vl: Be less verbose about missing KVM when running the qtests tests/migration: Allow longer timeouts qtest: add fuzz test case Acceptance tests: show test report on GitLab CI Acceptance tests: do not show canceled test logs on GitLab CI ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * gitlab: add a CI job to validate the DCO sign offDaniel P. Berrangé2020-10-131-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | While checkpatch.pl can validate DCO sign off that job must always be advisory only since it is expected that certain patches will fail some code style rules. We require the DCO sign off to be mandatory for all commits though, so it benefits from being validated in a standalone job. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20200918132903.1848939-3-berrange@redhat.com> [thuth: Use "stage: build" to let it run earlier] Signed-off-by: Thomas Huth <thuth@redhat.com>
| * gitlab: add a CI job for running checkpatch.plDaniel P. Berrangé2020-10-131-0/+12
| | | | | | | | | | | | | | | | | | | | | | This job is advisory since it is expected that certain patches will fail the style checks and checkpatch.pl provides no way to mark exceptions to the rules. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20200918132903.1848939-2-berrange@redhat.com> [thuth: Use "stage: build" to let it run earlier] Signed-off-by: Thomas Huth <thuth@redhat.com>
| * Acceptance tests: show test report on GitLab CICleber Rosa2020-10-131-0/+5
| | | | | | | | | | | | | | | | | | | | | | Avocado will, by default, produce JUnit files. Let's ask GitLab to present those in the web UI. Signed-off-by: Cleber Rosa <crosa@redhat.com> Message-Id: <20201009205513.751968-4-crosa@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
| * Acceptance tests: do not show canceled test logs on GitLab CICleber Rosa2020-10-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tests resulting in "CANCEL" in Avocado are usually canceled on purpose, and are almost identical to "SKIP". The logs for canceled tests are adding a lot of noise to the logs being shown on GitLab CI, and causing distraction from real failures. As a side note, this "after script" is scheduled for removal once the feature is implemented within Avocado itself. Reference: https://github.com/avocado-framework/avocado/issues/4266 Signed-off-by: Cleber Rosa <crosa@redhat.com> Message-Id: <20201009205513.751968-3-crosa@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
| * gitlab-ci.yml: Only run one test-case per fuzzerAlexander Bulekov2020-10-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With 1000 runs, there is a non-negligible chance that the fuzzer can trigger a crash. With this CI job, we care about catching build/runtime issues in the core fuzzing code. Actual device fuzzing takes place on oss-fuzz. For these purposes, only running one input should be sufficient. Signed-off-by: Alexander Bulekov <alxndr@bu.edu> Suggested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20201002143524.56930-1-alxndr@bu.edu> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Darren Kenny <darren.kenny@oracle.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
* | qemu-iotests, qtest: rewrite test 067 as a qtestPaolo Bonzini2020-10-121-1/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | | Test 067 from qemu-iotests is executing QMP commands to hotplug and hot-unplug disks, devices and blockdevs. Because the power of the text-based test harness is limited, it is actually limiting the checks that it does, for example by skipping DEVICE_DELETED events. tests/qtest already has a similar test, drive_del-test.c. We can merge them, and even reuse some of the existing code in drive_del-test.c. This will improve the quality of the test by covering DEVICE_DELETED events and testing multiple architectures (therefore covering multiple PCI hotplug mechanisms as well as s390x virtio-ccw). The only difference is that the new test will always use null-co:// for the medium rather than qcow2 or raw, but this should be irrelevant for what the test is covering. For example there are no "qemu-img check" runs in 067 that would check that the file is properly closed. The new tests requires PCI hot-plug support, so drive_del-test is moved from qemu-system-ppc to qemu-system-ppc64. Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* gitlab: split deprecated job into build/check stagesAlex Bennée2020-10-021-1/+16
| | | | | | | | | | | While the job is pretty fast for only a few targets we still want to catch breakage of the build. By splitting the test step we can allow_failures for that while still ensuring we don't miss the build breaking. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-Id: <20201002091538.3017-1-alex.bennee@linaro.org>
* gitlab: move linux-user plugins test across to gitlabAlex Bennée2020-10-021-0/+11
| | | | | | | | | | | | Even with the recent split moving beefier plugins into contrib and dropping them from the check-tcg tests we are still hitting time limits. This possibly points to a slow down of --debug-tcg but seeing as we are migrating stuff to gitlab we might as well move there and bump the timeout. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-Id: <20201002103223.24022-1-alex.bennee@linaro.org>
* gitlab-ci: Remove the Debian9-based containers and containers-layer3Thomas Huth2020-10-021-1/+0Star
| | | | | | | | | | | | | | According to our support policy, Debian 9 is not supported by the QEMU project anymore. Since we now switched the MinGW cross-compiler builds to Fedora, we do not need these Debian9-based containers in the gitlab-CI anymore, and can now also get rid of the "layer3" container build stage this way. Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20200921174320.46062-3-thuth@redhat.com> Message-Id: <20200925154027.12672-11-alex.bennee@linaro.org>
* configure: add [lm32|unicore32]-softmmu to deprecation logicAlex Bennée2020-09-161-4/+5
| | | | | | | | | While we are at it move the few places where they are into the deprecation build bucket. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20200915134317.11110-9-alex.bennee@linaro.org>
* gitlab: create a build-deprecated targetAlex Bennée2020-09-161-0/+10
| | | | | | | | | | | | These targets might be deprecated but we should keep them building before the final axe comes down. Lets keep them all in one place and don't hold up the CI if they do fail. They are either poorly tested or already flaky anyway. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Acked-by: Thomas Huth <thuth@redhat.com> Message-Id: <20200915134317.11110-8-alex.bennee@linaro.org>
* gitlab: expand test coverage for crypto buildsDaniel P. Berrangé2020-09-071-0/+68
| | | | | | | | | | | | | Most jobs test the latest nettle library. This adds explicit coverage for latest gcrypt using Fedora, and old gcrypt and nettle using CentOS-7. The latter does a minimal tools-only build, as we only need to validate that the crypto code builds and unit tests pass. Finally a job disabling both nettle and gcrypt is provided to validate that gnutls still works. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20200901133050.381844-3-berrange@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab-ci: Add cross-compiling build testsThomas Huth2020-09-071-0/+1
| | | | | | | | | | | | | Now that we can use all our QEMU test containers in the gitlab-CI, we can easily add some jobs that test cross-compilation for various architectures. There is just only small ugliness: Since the shared runners on gitlab.com are single-threaded, we have to split each compilation job into two parts (--disable-user and --disable-system), and exclude some additional targets, to avoid that the jobs are running too long and hitting the timeout of 1 h. Message-Id: <20200823111757.72002-8-thuth@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab-ci.yml: Set artifacts expiration timeThomas Huth2020-09-031-0/+4
| | | | | | | | | | | | The default expiration time for artifacts seems to be very high (30 days?). Since we only need the artifacts to pass the binaries from one stage to the next one, we can decrease the expiration time to avoid to spam the file server too much. Two days should be enough in case someone still wants to have a look after the pipeline finished. Message-Id: <20200806161546.15325-1-thuth@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab-ci.yml: Run check-qtest and check-unit at the end of the fuzzer jobThomas Huth2020-09-031-2/+4
| | | | | | | | | The fuzzer job finishes quite early, so we can run the unit tests and qtests with -fsanitize=address here without extending the total test time. Message-Id: <20200831153228.229185-1-thuth@redhat.com> Reviewed-by: Alexander Bulekov <alxndr@bu.edu> Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab/travis: Rework the disabled features testsThomas Huth2020-09-031-7/+19
| | | | | | | | | | Let's focus on the gitlab-ci when testing the compilation with disabled features, thus add more switches there (and while we're at it, sort them also alphabetically). This should cover the test from the Travis CI now, too, so that we can remove the now-redundant job from the Travis CI. Message-Id: <20200806155306.13717-1-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
* meson: link emulators without Makefile.targetPaolo Bonzini2020-08-211-3/+3
| | | | | | | | The binaries move to the root directory, e.g. qemu-system-i386 or qemu-arm. This requires changes to qtests, CI, etc. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* gitlab-ci: Fix Avocado cache usageThomas Huth2020-08-051-6/+19
| | | | | | | | | | | | | | | | In commit 6957fd98dc ("gitlab: add avocado asset caching") we tried to save the Avocado cache (as in commit c1073e44b4 with Travis-CI) however it doesn't work as expected. For some reason Avocado uses /root/avocado_cache/ which we can not select later. Manually generate a Avocado config to force the use of the current job's directory. This patch is based on an earlier version from Philippe Mathieu-Daudé. Message-Id: <20200730141326.8260-5-thuth@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab-ci.yml: Add build-system-debian and build-system-centos jobsThomas Huth2020-08-051-15/+73
| | | | | | | | | | | | | | | | We were missing the two new targets avr-softmmu and rx-softmmu in the gitlab-CI so far, and did not add some of the "other endianess" targets like sh4eb-softmmu yet. Since the current build-system-* jobs run already for a very long time, let's do not add these missing targets there, but introduce two new additional build jobs, one running with Debian and one running with CentOS, and add the new targets there. Also move some targets from the old build-system-* jobs to these new targets, to distribute the load and reduce the runtime of the CI. Message-Id: <20200730141326.8260-4-thuth@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab-ci.yml: Add oss-fuzz build testsAlexander Bulekov2020-07-211-12/+10Star
| | | | | | | | | | | | | | | | This tries to build and run the fuzzers with the same build-script used by oss-fuzz. This doesn't guarantee that the builds on oss-fuzz will also succeed, since oss-fuzz provides its own compiler and fuzzer vars, but it can catch changes that are not compatible with the the ./scripts/oss-fuzz/build.sh script. The strange way of finding fuzzer binaries stems from the method used by oss-fuzz: https://github.com/google/oss-fuzz/blob/master/infra/base-images/base-runner/targets_list Signed-off-by: Alexander Bulekov <alxndr@bu.edu> Message-Id: <20200720073223.22945-1-thuth@redhat.com> [thuth: Tweak the "script" to make it work, exclude slirp test, etc.] Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab-ci.yml: Add fuzzer testsThomas Huth2020-07-171-1/+19
| | | | | | | | | | | | | | | So far we neither compile-tested nor run any of the new fuzzers in our CI, which led to some build failures of the fuzzer code in the past weeks. To avoid this problem, add a job to compile the fuzzer code and run some loops (which likely don't find any new bugs via fuzzing, but at least we know that the code can still be run). A nice side-effect of this test is that the leak tests are enabled here, so we should now notice some of the memory leaks in our code base earlier. Message-Id: <20200716100950.27396-1-thuth@redhat.com> Reviewed-by: Alexander Bulekov <alxndr@bu.edu> Signed-off-by: Thomas Huth <thuth@redhat.com>
* testing: add check-build targetAlex Bennée2020-07-111-1/+3
| | | | | | | | | | | If we want to continue to split build and check phase it seems like a good idea to allow building of the tests during our multi-threaded build phase. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Cc: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20200701135652.1366-40-alex.bennee@linaro.org>
* gitlab: add avocado asset cachingAlex Bennée2020-07-111-0/+6
| | | | | | | | | These can be quite big so lets cache them. I couldn't find any nots on ccache in the gitlab docs so I've just ignored it for now. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20200701135652.1366-36-alex.bennee@linaro.org>
* gitlab: enable check-tcg for linux-user testsAlex Bennée2020-07-111-4/+3Star
| | | | | | | | | | Switch to building in the new debian-all-test-cross image which has most of the cross compilers inline. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-Id: <20200701135652.1366-35-alex.bennee@linaro.org>
* gitlab: add acceptance testing to system buildsAlex Bennée2020-07-111-3/+66
| | | | | | | | | | | | | | | | As part of migrating things from Travis to GitLab add the acceptance tests. To do this: - rename system1 to system-ubuntu-main - rename system2 to system-fedora-misc - split into build/check/acceptance - remove -j from check stages - use artifacts to save build stage - add post acceptance template and use Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20200701135652.1366-31-alex.bennee@linaro.org>
* gitlab: convert jobs to use custom built containersDaniel P. Berrangé2020-07-111-106/+81Star
| | | | | | | | | | | | | | | | | Now that we're building standard container images from dockerfiles in tests/docker/dockerfiles, we can convert the build jobs to use them. The key benefit of this is that a contributor can now more easily replicate the CI environment on their local machine. The container images are cached too, so we are not spending time waiting for the apt-get/dnf package installs to complete. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20200622153318.751107-4-berrange@redhat.com> [AJB: tweak naming convention] Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Acked-by: Thomas Huth <thuth@redhat.com> Message-Id: <20200701135652.1366-23-alex.bennee@linaro.org>
* gitlab: build all container images during CIDaniel P. Berrangé2020-07-111-0/+3
| | | | | | | | | | | | | | | | | | | | | We have a number of container images in tests/docker/dockerfiles that are intended to provide well defined environments for doing test builds. We want our CI system to use these containers too. This introduces builds of all of them as the first stage in the CI, so that the built containers are available for later build jobs. The containers are setup to use the GitLab container registry as the cache, so we only pay the penalty of the full build when the dockerfiles change. The main qemu-project/qemu repo is used as a second cache, so that users forking QEMU will see a fast turnaround time on their CI jobs. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20200622153318.751107-3-berrange@redhat.com> [AJB: tweak the tag format] Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Acked-by: Thomas Huth <thuth@redhat.com> Message-Id: <20200701135652.1366-22-alex.bennee@linaro.org>
* gitlab: introduce explicit "container" and "build" stagesDaniel P. Berrangé2020-07-111-0/+11
| | | | | | | | | | | | | | If no stage is listed, jobs get put in an implicit "test" stage. Some jobs which create container images to be used by later stages are currently listed as in a "build" stages. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Acked-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20200622153318.751107-2-berrange@redhat.com> Message-Id: <20200701135652.1366-21-alex.bennee@linaro.org>
* gitlab-ci: Determine the number of jobs dynamicallyThomas Huth2020-05-281-11/+13
| | | | | | | | | | | Some people might want to run the gitlab CI pipelines in an environment where multiple CPUs are available to the runners, so let's rather get the number for "-j" from the "nproc" program (increased by 1 to compensate for jobs that wait for I/O) instead of hard-coding it. Message-Id: <20200525131823.715-7-thuth@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab-ci: Do not use the standard container images from gitlabThomas Huth2020-05-281-12/+25
| | | | | | | | | | | | | | | | | | | | | | | Currently all pipelines of the gitlab CI are failing, except for the "build-user" pipeline. There is an issue with the default container image (likely Debian stable) where they imported something bad in one of the system headers: /usr/include/linux/swab.h: In function '__swab': /builds/huth/qemu/include/qemu/bitops.h:20:34: error: "sizeof" is not defined, evaluates to 0 [-Werror=undef] #define BITS_PER_LONG (sizeof (unsigned long) * BITS_PER_BYTE) We could maybe work-around this issue or wait for the default containers to get fixed, but considering that we use Ubuntu (and thus Debian-style) CI in Travis already to a very large extent, we should consider to use some RPM-based distros in our gitlab CI instead. Thus let's change the failing pipelines to use Fedora and CentOS (and also one Ubuntu 19.10, since 20.04 is broken, too) now. Message-Id: <20200525131823.715-6-thuth@redhat.com> Acked-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab-ci: Move edk2 and opensbi YAML files to .gitlab-ci.d folderThomas Huth2020-05-281-2/+2
| | | | | | | | | | We have a dedicated folder for the gitlab-ci - so there is no need to clutter the top directory with these .yml files. Message-Id: <20200525131823.715-5-thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
* GitLab CI: avoid calling before_scripts on unintended jobsCleber Rosa2020-05-281-3/+11
| | | | | | | | | | | | | | | 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 later 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> Message-Id: <20200525131823.715-4-thuth@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> [thuth: Rebased to current master branch, use separate template] Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab-ci: Remove flex/bison packagesPhilippe Mathieu-Daudé2020-05-281-1/+1
| | | | | | | | | | QEMU does not use flex/bison packages. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20200515163029.12917-4-philmd@redhat.com> Message-Id: <20200525131823.715-3-thuth@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
* gitlab-ci.yml: Add jobs to build OpenSBI firmware binariesBin Meng2020-03-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Add two GitLab jobs to build the OpenSBI firmware binaries. The first job builds a Docker image with the packages requisite to build OpenSBI, and stores this image in the GitLab registry. The second job pulls the image from the registry and builds the OpenSBI firmware binaries. The docker image is only rebuilt if the GitLab YAML or the Dockerfile is updated. The second job is only built when the roms/opensbi/ submodule is updated, when a git-ref starts with 'opensbi' or when the last commit contains 'OpenSBI'. The files generated are archived in the artifacts.zip file. With OpenSBI v0.6, it took 2 minutes 56 seconds to build the docker image, and 1 minute 24 seconds to generate the artifacts.zip with the firmware binaries (filesize: 111KiB). See: https://gitlab.com/lbmeng/qemu/pipelines/120520138 Suggested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>