[PATCH 0/3] automation: build qemu-system-aarch64 and use it for tests

Stefano Stabellini posted 3 patches 3 years, 10 months ago
Test gitlab-ci failed
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/alpine.DEB.2.21.2101051452480.4307@sstabellini-ThinkPad-T480s
automation/gitlab-ci/build.yaml                    | 11 ++++
automation/gitlab-ci/test.yaml                     |  2 +
automation/scripts/qemu-alpine-arm64.sh            | 12 ++--
automation/scripts/qemu-smoke-arm64.sh             | 15 ++---
.../qemu-system-aarch64/5.2.0-arm64v8.dockerfile   | 75 ++++++++++++++++++++++
5 files changed, 100 insertions(+), 15 deletions(-)
create mode 100644 automation/tests-artifacts/qemu-system-aarch64/5.2.0-arm64v8.dockerfile
[PATCH 0/3] automation: build qemu-system-aarch64 and use it for tests
Posted by Stefano Stabellini 3 years, 10 months ago
Hi all,

Currently we are using Debian's qemu-system-aarch64 for our tests.
However, sometimes it crashes. See for instance
https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/939556527. It
is hard to debug and even harder to apply any fixes to it.

Instead, build our own QEMU as one of our test-artifacts, which are only
built once, then imported into each pipeline via phony jobs. Use the
provided qemu-system-aarch64 binary for our arm64 tests.


Stefano Stabellini (3):
      automation: add qemu-system-aarch64 to test-artifacts
      automation: add a job to import qemu-system-aarch64 into the pipeline
      automation: use test-artifacts/qemu-system-aarch64 instead of Debian's

 automation/gitlab-ci/build.yaml                    | 11 ++++
 automation/gitlab-ci/test.yaml                     |  2 +
 automation/scripts/qemu-alpine-arm64.sh            | 12 ++--
 automation/scripts/qemu-smoke-arm64.sh             | 15 ++---
 .../qemu-system-aarch64/5.2.0-arm64v8.dockerfile   | 75 ++++++++++++++++++++++
 5 files changed, 100 insertions(+), 15 deletions(-)
 create mode 100644 automation/tests-artifacts/qemu-system-aarch64/5.2.0-arm64v8.dockerfile

Re: [PATCH 0/3] automation: build qemu-system-aarch64 and use it for tests
Posted by Wei Liu 3 years, 10 months ago
On Tue, Jan 05, 2021 at 02:58:38PM -0800, Stefano Stabellini wrote:
> Hi all,
> 
> Currently we are using Debian's qemu-system-aarch64 for our tests.
> However, sometimes it crashes. See for instance
> https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/939556527. It
> is hard to debug and even harder to apply any fixes to it.
> 
> Instead, build our own QEMU as one of our test-artifacts, which are only
> built once, then imported into each pipeline via phony jobs. Use the
> provided qemu-system-aarch64 binary for our arm64 tests.
> 
> 
> Stefano Stabellini (3):
>       automation: add qemu-system-aarch64 to test-artifacts
>       automation: add a job to import qemu-system-aarch64 into the pipeline
>       automation: use test-artifacts/qemu-system-aarch64 instead of Debian's

Acked-by: Wei Liu <wl@xen.org>

I do wonder if there is a way to not build QEMU during every pipeline
run though...

Re: [PATCH 0/3] automation: build qemu-system-aarch64 and use it for tests
Posted by Stefano Stabellini 3 years, 10 months ago
On Wed, 6 Jan 2021, Wei Liu wrote:
> On Tue, Jan 05, 2021 at 02:58:38PM -0800, Stefano Stabellini wrote:
> > Hi all,
> > 
> > Currently we are using Debian's qemu-system-aarch64 for our tests.
> > However, sometimes it crashes. See for instance
> > https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/939556527. It
> > is hard to debug and even harder to apply any fixes to it.
> > 
> > Instead, build our own QEMU as one of our test-artifacts, which are only
> > built once, then imported into each pipeline via phony jobs. Use the
> > provided qemu-system-aarch64 binary for our arm64 tests.
> > 
> > 
> > Stefano Stabellini (3):
> >       automation: add qemu-system-aarch64 to test-artifacts
> >       automation: add a job to import qemu-system-aarch64 into the pipeline
> >       automation: use test-artifacts/qemu-system-aarch64 instead of Debian's
> 
> Acked-by: Wei Liu <wl@xen.org>
> 
> I do wonder if there is a way to not build QEMU during every pipeline
> run though...

It does not build QEMU every pipeline! It only imports it into the
pipeline by copying the QEMU binary from a container. The container with
the QEMU binary is not built every time. We could build it once a month
or so like the build containers.