Skip to content
Snippets Groups Projects
  1. Jan 05, 2022
  2. Jan 03, 2022
  3. Dec 31, 2021
  4. Dec 17, 2021
    • Thomas Huth's avatar
      gitlab-ci: Speed up the msys2-64bit job by using --without-default-devices · 9f8e6cad
      Thomas Huth authored
      
      The new msys2-64bit job is often running for more than 50 minutes - and
      if the CI is currently loaded, it times out after 60 minutes. The job
      has been declared with a bigger timeout, but seems like this is getting
      ignored on the shared Gitlab-CI Windows runners, so we're currently
      seeing a lot of failures with this job. Thus we have to reduce the time
      it takes to finish this job. Since we want to test compiling the WHPX
      and HAX accelerator code with this job, switching to another target CPU
      is not really a good option, so let's reduce the amount of code that we
      have to compile with the --without-default-devices switch instead.
      
      Message-Id: <20211216082253.43899-1-thuth@redhat.com>
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
      Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
      9f8e6cad
  5. Dec 15, 2021
    • Thomas Huth's avatar
      gitlab-ci: Test compilation on Windows with MSYS2 · 7876cba8
      Thomas Huth authored
      
      Gitlab also provides runners with Windows, we can use them to
      test compilation with MSYS2, in both, 64-bit and 32-bit.
      
      However, it takes quite a long time to set up the VM, so to stay
      in a reasonable time frame, we can only compile and check one
      target here.
      
      Message-Id: <20211115140623.104116-1-thuth@redhat.com>
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
      7876cba8
    • Thomas Huth's avatar
      gitlab-ci: Add cirrus-ci based tests for NetBSD and OpenBSD · f11b0a48
      Thomas Huth authored
      
      Cirrus-CI provides KVM in their Linux containers, so we can also run
      our VM-based NetBSD and OpenBSD build jobs there.
      Since the VM installation might take a while, we only run the "help"
      target on the first invocation to avoid timeouts, and then only check
      the build during the next run, once the base image has been cached.
      For the the build tests, we also only use very a limited set of target
      CPUs since compiling in these VMs is not very fast (especially the
      build on OpenBSD seems to be incredibly slow).
      
      The jobs are marked as "manual" only, since this double-indirect setup
      (with the cirrus-run script and VMs in the Cirrus-CI containers) might
      fail more often than the other jobs, and since we can trigger a limited
      amount of Cirrus-CI jobs at a time anyway (due to the restrictions in
      the free tier of Cirrus). Thus these jobs are rather added as convenience
      for contributors who would like to run the NetBSD/OpenBSD tests without
      the need of downloading and installing the corresponding VM images on
      their local machines.
      
      Message-Id: <20211209103124.121942-1-thuth@redhat.com>
      Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
      f11b0a48
    • Thomas Huth's avatar
      gitlab-ci.d/buildtest: Add jobs that run the device-crash-test · f462be4c
      Thomas Huth authored
      
      The device-crash-test script has been quite neglected in the past,
      so that it bit-rot quite often. Let's add CI jobs that run this
      script for at least some targets, so that this script does not
      regress that easily anymore.
      
      Message-Id: <20211126162724.1162049-1-thuth@redhat.com>
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
      Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
      f462be4c
  6. Nov 17, 2021
  7. Nov 16, 2021
    • Daniel P. Berrangé's avatar
      gitlab: skip cirrus jobs on master and stable branches · 9968de0a
      Daniel P. Berrangé authored
      
      On the primary QEMU repository we want the CI jobs to run on the staging
      branch as a gating CI test.
      
      Cirrus CI has very limited job concurrency, so if there are too many
      jobs triggered they'll queue up and hit the GitLab CI job timeout before
      they complete on Cirrus.
      
      If we let Cirrus jobs run again on the master branch immediately after
      merging from staging, that just increases the chances jobs will get
      queued and subsequently timeout.
      
      The same applies for merges to the stable branches.
      
      User forks meanwhile should be allowed to run Cirrus CI jobs freely.
      
      Signed-off-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
      Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
      Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
      Reviewed-by: default avatarWillian Rampazzo <willianr@redhat.com>
      Message-Id: <20211116112757.1909176-1-berrange@redhat.com>
      Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      9968de0a
    • Philippe Mathieu-Daudé's avatar
      gitlab-ci: Split custom-runners.yml in one file per runner · 60bec83e
      Philippe Mathieu-Daudé authored
      
      To ease maintenance, add the custom-runners/ directory and
      split custom-runners.yml in 3 files, all included by the
      current custom-runners.yml:
       - ubuntu-18.04-s390x.yml
       - ubuntu-20.04-aarch64.yml
       - centos-stream-8-x86_64.yml
      
      Signed-off-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
      Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Message-Id: <20211115095608.2436223-1-philmd@redhat.com>
      Reviewed-by: default avatarWillian Rampazzo <willianr@redhat.com>
      Message-Id: <20211115142915.3797652-7-alex.bennee@linaro.org>
      60bec83e
    • Cleber Rosa's avatar
      Jobs based on custom runners: add CentOS Stream 8 · d7c2e2b3
      Cleber Rosa authored
      
      This introduces three different parts of a job designed to run
      on a custom runner managed by Red Hat.  The goals include:
      
        a) propose a model for other organizations that want to onboard
           their own runners, with their specific platforms, build
           configuration and tests.
      
        b) bring awareness to the differences between upstream QEMU and the
           version available under CentOS Stream, which is "A preview of
           upcoming Red Hat Enterprise Linux minor and major releases".
      
        c) because of b), it should be easier to identify and reduce the gap
           between Red Hat's downstream and upstream QEMU.
      
      The components of this custom job are:
      
        I) OS build environment setup code:
      
           - additions to the existing "build-environment.yml" playbook
             that can be used to set up CentOS/EL 8 systems.
      
           - a CentOS Stream 8 specific "build-environment.yml" playbook
             that adds to the generic one.
      
       II) QEMU build configuration: a script that will produce binaries with
           features as similar as possible to the ones built and packaged on
           CentOS stream 8.
      
      III) Scripts that define the minimum amount of testing that the
           binaries built with the given configuration (point II) under the
           given OS build environment (point I) should be subjected to.
      
       IV) Job definition: GitLab CI jobs that will dispatch the build/test
           jobs (see points #II and #III) to the machine specifically
           configured according to #I.
      
      Signed-off-by: default avatarCleber Rosa <crosa@redhat.com>
      Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Reviewed-by: default avatarWillian Rampazzo <willianr@redhat.com>
      Tested-by: default avatarWillian Rampazzo <willianr@redhat.com>
      Message-Id: <20211111160501.862396-2-crosa@redhat.com>
      Message-Id: <20211115142915.3797652-6-alex.bennee@linaro.org>
      d7c2e2b3
  8. Nov 08, 2021
  9. Nov 02, 2021
  10. Oct 20, 2021
  11. Oct 12, 2021
  12. Sep 15, 2021
  13. Sep 14, 2021
    • Peter Maydell's avatar
      gitlab-ci: Make more custom runner jobs manual, and don't allow failure · 4c9af1ea
      Peter Maydell authored
      
      Currently we define a lot of jobs for our custom runners:
      for both aarch64 and s390x we have
       - all-linux-static
       - all
       - alldbg
       - clang (manual)
       - tci
       - notcg (manual)
      
      This is overkill.  The main reason to run on these hosts is to get
      coverage for the host architecture; we can leave the handling of
      differences like debug vs non-debug to the x86 CI jobs.
      
      The jobs are also generally running OK; they occasionally fail due to
      timeouts, which is likely because we're overloading the machine by
      asking it to run 4 CI jobs at once plus the ad-hoc CI.
      
      Remove the 'allow_failure' tag from all these jobs, and switch the
      s390x-alldbg, aarch64-all, s390x-tci and aarch64-tci jobs to manual.
      (We keep -all on s390x and -alldbg on aarch64 just for diversity
      of coverage.)
      
      This will let us make the switch for s390x and aarch64 hosts from
      the ad-hoc CI to gitlab.
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: default avatarWillian Rampazzo <willianr@redhat.com>
      Reviewed-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
      Acked-by: default avatarThomas Huth <thuth@redhat.com>
      Message-id: 20210913101948.12600-1-peter.maydell@linaro.org
      4c9af1ea
  14. Sep 06, 2021
  15. Sep 02, 2021
  16. Sep 01, 2021
  17. Aug 11, 2021
  18. Jul 29, 2021
  19. Jul 23, 2021
    • Philippe Mathieu-Daudé's avatar
      gitlab-ci: Extract OpenSBI job rules to reusable section · 0a9487d8
      Philippe Mathieu-Daudé authored
      
      All jobs depending on 'docker-opensbi' job must use at most all
      the rules that triggers it. The simplest way to ensure that
      is to always use the same rules. Extract all the rules to a
      reusable section, and include this section (with the 'extends'
      keyword) in both 'docker-opensbi' and 'build-opensbi' jobs.
      
      The problem was introduced in commit c6fc0fc1 ("gitlab-ci.yml:
      Add jobs to build OpenSBI firmware binaries"), but was revealed in
      commit 91e9c47e ("docker: OpenSBI build job depends on OpenSBI
      container").
      
      This fix is similar to the one used with the EDK2 firmware job in
      commit ac0595cf ("gitlab-ci: Extract EDK2 job rules to reusable
      section").
      
      Reported-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
      Signed-off-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
      Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Reviewed-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
      Reviewed-by: default avatarWillian Rampazzo <willianr@redhat.com>
      Message-Id: <20210720164829.3949558-1-philmd@redhat.com>
      Message-Id: <20210720232703.10650-30-alex.bennee@linaro.org>
      0a9487d8
    • Thomas Huth's avatar
      gitlab-ci: Remove the second superfluous macos task · e90c3c3c
      Thomas Huth authored
      
      While there might have been bigger differnces between the -base and
      the -xcode images in the beginning, they almost vanished in the
      current builds, e.g. when comparing the output of the "configure"
      step after cleaning up the differences due to temporary path names,
      I only get:
      
        $ diff -u /tmp/base.txt /tmp/xcode.txt
        --- /tmp/base.txt	2021-07-16 09:16:24.211427940 +0200
        +++ /tmp/xcode.txt	2021-07-16 09:16:43.029684274 +0200
        @@ -19,14 +19,14 @@
         Build type: native build
         Project name: qemu
         Project version: 6.0.50
        -C compiler for the host machine: cc (clang 12.0.0 "Apple clang version 12.0.0 (clang-1200.0.32.29)")
        +C compiler for the host machine: cc (clang 12.0.0 "Apple clang version 12.0.0 (clang-1200.0.32.28)")
         C linker for the host machine: cc ld64 609.8
         Host machine cpu family: x86_64
         Host machine cpu: x86_64
         Program sh found: YES (/bin/sh)
         Program python3 found: YES (/usr/local/opt/python@3.9/bin/python3.9)
         Program bzip2 found: YES (/usr/bin/bzip2)
        -C++ compiler for the host machine: c++ (clang 12.0.0 "Apple clang version 12.0.0 (clang-1200.0.32.29)")
        +C++ compiler for the host machine: c++ (clang 12.0.0 "Apple clang version 12.0.0 (clang-1200.0.32.28)")
         C++ linker for the host machine: c++ ld64 609.8
         Objective-C compiler for the host machine: clang (clang 12.0.0)
         Objective-C linker for the host machine: clang ld64 609.8
      
      Since we're not using Xcode itself at all, it seems like it does not
      make much sense anymore to waste compute cycles with two images here.
      Thus let's delete the -xcode job now.
      
      [AJB: fix up commit formatting which trips up b4]
      
      Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
      Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Reviewed-by: default avatarWillian Rampazzo <willianr@redhat.com>
      Reviewed-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
      Message-Id: <20210719073051.1559348-1-thuth@redhat.com>
      Message-Id: <20210720232703.10650-29-alex.bennee@linaro.org>
      e90c3c3c
    • Alex Bennée's avatar
      gitlab: enable a very minimal build with the tricore container · 39ce9237
      Alex Bennée authored
      
      Rather than base of the shared Debian 10 container which would require
      us to bring in even more dependencies just bring in what is needed for
      building tricore-softmmu in GitLab. We don't even remove the container
      from the DOCKER_PARTIAL_IMAGES lest we cause more confusion.
      
      Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
      Reviewed-by: default avatarWillian Rampazzo <willianr@redhat.com>
      Message-Id: <20210720232703.10650-28-alex.bennee@linaro.org>
      39ce9237
    • Daniel P. Berrangé's avatar
      gitlab: only let pages be published from default branch · eafadbbb
      Daniel P. Berrangé authored
      GitLab will happily publish pages generated by the latest CI pipeline
      from any branch:
      
      https://docs.gitlab.com/ee/user/project/pages/introduction.html
      
      
      
        "Remember that GitLab Pages are by default branch/tag agnostic
         and their deployment relies solely on what you specify in
         .gitlab-ci.yml. You can limit the pages job with the only
         parameter, whenever a new commit is pushed to a branch used
         specifically for your pages."
      
      The current "pages" job is not limited, so it is happily publishing
      docs content from any branch/tag in qemu.git that gets pushed to.
      This means we're potentially publishing from the "staging" branch
      or worse from outdated "stable-NNN" branches
      
      This change restricts it to only publish from the default branch
      in the main repository. For contributor forks, however, we allow
      it to publish from any branch, since users will have arbitrarily
      named topic branches in flight at any time.
      
      Signed-off-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
      Message-Id: <20210723113051.2792799-1-berrange@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      eafadbbb
  20. Jul 19, 2021
  21. Jul 14, 2021
Loading