[PATCH] gitlab-ci.yml: Add openSUSE Leap 15.2 for gitlab CI/CD

Cho, Yu-Chen posted 1 patch 3 years, 5 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20201117065719.30150-1-acho@suse.com
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>, Wainer dos Santos Moschetta <wainersm@redhat.com>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, Thomas Huth <thuth@redhat.com>, Fam Zheng <fam@euphon.net>
There is a newer version of this series
.gitlab-ci.d/containers.yml                   |  5 ++
.gitlab-ci.yml                                | 30 +++++++
tests/docker/dockerfiles/opensuse-leap.docker | 88 +++++++++++++++++++
3 files changed, 123 insertions(+)
create mode 100644 tests/docker/dockerfiles/opensuse-leap.docker
[PATCH] gitlab-ci.yml: Add openSUSE Leap 15.2 for gitlab CI/CD
Posted by Cho, Yu-Chen 3 years, 5 months ago
Add build-system-opensuse jobs and add opensuse-leap.docker dockerfile.
Use openSUSE Leap 15.2 container image in the gitlab-CI.

Signed-off-by: Cho, Yu-Chen <acho@suse.com>
---
 .gitlab-ci.d/containers.yml                   |  5 ++
 .gitlab-ci.yml                                | 30 +++++++
 tests/docker/dockerfiles/opensuse-leap.docker | 88 +++++++++++++++++++
 3 files changed, 123 insertions(+)
 create mode 100644 tests/docker/dockerfiles/opensuse-leap.docker

diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml
index 11d079ea58..082624a6fa 100644
--- a/.gitlab-ci.d/containers.yml
+++ b/.gitlab-ci.d/containers.yml
@@ -246,3 +246,8 @@ amd64-ubuntu-container:
   <<: *container_job_definition
   variables:
     NAME: ubuntu
+
+amd64-opensuse-leap-container:
+  <<: *container_job_definition
+  variables:
+    NAME: opensuse-leap
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9a8b375188..bf4759296a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -195,6 +195,36 @@ acceptance-system-centos:
     MAKE_CHECK_ARGS: check-acceptance
   <<: *acceptance_definition
 
+build-system-opensuse:
+  <<: *native_build_job_definition
+  variables:
+    IMAGE: opensuse-leap
+    TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
+    MAKE_CHECK_ARGS: check-build
+  artifacts:
+    expire_in: 2 days
+    paths:
+      - build
+
+check-system-opensuse:
+  <<: *native_test_job_definition
+  needs:
+    - job: build-system-opensuse
+      artifacts: true
+  variables:
+    IMAGE: opensuse-leap
+    MAKE_CHECK_ARGS: check
+
+acceptance-system-opensuse:
+  <<: *native_test_job_definition
+  needs:
+    - job: build-system-opensuse
+      artifacts: true
+  variables:
+    IMAGE: opensuse-leap
+    MAKE_CHECK_ARGS: check-acceptance
+  <<: *acceptance_definition
+
 build-disabled:
   <<: *native_build_job_definition
   variables:
diff --git a/tests/docker/dockerfiles/opensuse-leap.docker b/tests/docker/dockerfiles/opensuse-leap.docker
new file mode 100644
index 0000000000..712eb4fe3a
--- /dev/null
+++ b/tests/docker/dockerfiles/opensuse-leap.docker
@@ -0,0 +1,88 @@
+FROM opensuse/leap:15.2
+
+RUN zypper update -y
+
+# Please keep this list sorted alphabetically
+ENV PACKAGES \
+    bc \
+    brlapi-devel \
+    bzip2 \
+    libzip-devel \
+    ccache \
+    clang \
+    cyrus-sasl-devel \
+    dbus-1 \
+    device-mapper-devel \
+    gcc \
+    gcc-c++ \
+    mkisofs \
+    gettext-runtime \
+    git \
+    glib2-devel \
+    glusterfs-devel \
+    libgnutls-devel \
+    gtk3-devel \
+    hostname \
+    libaio-devel \
+    libasan5 \
+    libattr-devel \
+    libblockdev-devel \
+    libcap-ng-devel \
+    libcurl-devel \
+    libepoxy-devel \
+    libfdt-devel \
+    libiscsi-devel \
+    libjpeg8-devel \
+    libpmem-devel \
+    libpng16-devel \
+    librbd-devel \
+    libseccomp-devel \
+    libssh-devel \
+    libubsan0 \
+    libudev-devel \
+    libxml2-devel \
+    libzstd-devel \
+    llvm \
+    lzo-devel \
+    make \
+    mingw32-filesystem \
+    glibc-devel-32bit \
+    libSDL2_image-devel \
+    mingw64-binutils \
+    nmap \
+    ncat \
+    ncurses-devel \
+    libnettle-devel \
+    ninja \
+    mozilla-nss-devel \
+    libnuma-devel \
+    perl \
+    libpixman-1-0-devel \
+    python3-base \
+    python3-PyYAML \
+    python3-numpy \
+    python3-opencv \
+    python3-Pillow \
+    python3-pip \
+    python3-Sphinx \
+    python3-virtualenv \
+    rdma-core-devel \
+    libSDL2-devel \
+    snappy-devel \
+    sparse \
+    libspice-server-devel \
+    systemd-devel \
+    systemtap-sdt-devel \
+    tar \
+    tesseract-ocr \
+    tesseract-ocr-traineddata-english \
+    usbredir-devel \
+    virglrenderer-devel \
+    libvte-2_91-0 \
+    which \
+    xen-devel \
+    zlib-devel
+ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3.8
+
+RUN zypper  --non-interactive install -y $PACKAGES
+RUN rpm -q $PACKAGES | sort > /packages.txt
-- 
2.29.2


Re: [PATCH] gitlab-ci.yml: Add openSUSE Leap 15.2 for gitlab CI/CD
Posted by Thomas Huth 3 years, 5 months ago
On 17/11/2020 07.57, Cho, Yu-Chen wrote:
> Add build-system-opensuse jobs and add opensuse-leap.docker dockerfile.
> Use openSUSE Leap 15.2 container image in the gitlab-CI.
> 
> Signed-off-by: Cho, Yu-Chen <acho@suse.com>
> ---
>  .gitlab-ci.d/containers.yml                   |  5 ++
>  .gitlab-ci.yml                                | 30 +++++++
>  tests/docker/dockerfiles/opensuse-leap.docker | 88 +++++++++++++++++++
>  3 files changed, 123 insertions(+)
>  create mode 100644 tests/docker/dockerfiles/opensuse-leap.docker
> 
> diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml
> index 11d079ea58..082624a6fa 100644
> --- a/.gitlab-ci.d/containers.yml
> +++ b/.gitlab-ci.d/containers.yml
> @@ -246,3 +246,8 @@ amd64-ubuntu-container:
>    <<: *container_job_definition
>    variables:
>      NAME: ubuntu
> +
> +amd64-opensuse-leap-container:
> +  <<: *container_job_definition
> +  variables:
> +    NAME: opensuse-leap
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 9a8b375188..bf4759296a 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -195,6 +195,36 @@ acceptance-system-centos:
>      MAKE_CHECK_ARGS: check-acceptance
>    <<: *acceptance_definition
>  
> +build-system-opensuse:
> +  <<: *native_build_job_definition
> +  variables:
> +    IMAGE: opensuse-leap
> +    TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
> +    MAKE_CHECK_ARGS: check-build
> +  artifacts:
> +    expire_in: 2 days
> +    paths:
> +      - build
> +
> +check-system-opensuse:
> +  <<: *native_test_job_definition
> +  needs:
> +    - job: build-system-opensuse
> +      artifacts: true
> +  variables:
> +    IMAGE: opensuse-leap
> +    MAKE_CHECK_ARGS: check
> +
> +acceptance-system-opensuse:
> +  <<: *native_test_job_definition
> +  needs:
> +    - job: build-system-opensuse
> +      artifacts: true
> +  variables:
> +    IMAGE: opensuse-leap
> +    MAKE_CHECK_ARGS: check-acceptance
> +  <<: *acceptance_definition
> +
>  build-disabled:
>    <<: *native_build_job_definition
>    variables:
> diff --git a/tests/docker/dockerfiles/opensuse-leap.docker b/tests/docker/dockerfiles/opensuse-leap.docker
> new file mode 100644
> index 0000000000..712eb4fe3a
> --- /dev/null
> +++ b/tests/docker/dockerfiles/opensuse-leap.docker
> @@ -0,0 +1,88 @@
> +FROM opensuse/leap:15.2
> +
> +RUN zypper update -y
> +
> +# Please keep this list sorted alphabetically
> +ENV PACKAGES \
> +    bc \
> +    brlapi-devel \
> +    bzip2 \
> +    libzip-devel \
> +    ccache \
> +    clang \
> +    cyrus-sasl-devel \
> +    dbus-1 \
> +    device-mapper-devel \
> +    gcc \
> +    gcc-c++ \
> +    mkisofs \
> +    gettext-runtime \
> +    git \
> +    glib2-devel \
> +    glusterfs-devel \
> +    libgnutls-devel \
> +    gtk3-devel \
> +    hostname \
> +    libaio-devel \
> +    libasan5 \
> +    libattr-devel \
> +    libblockdev-devel \
> +    libcap-ng-devel \
> +    libcurl-devel \
> +    libepoxy-devel \
> +    libfdt-devel \
> +    libiscsi-devel \
> +    libjpeg8-devel \
> +    libpmem-devel \
> +    libpng16-devel \
> +    librbd-devel \
> +    libseccomp-devel \
> +    libssh-devel \
> +    libubsan0 \
> +    libudev-devel \
> +    libxml2-devel \
> +    libzstd-devel \
> +    llvm \
> +    lzo-devel \
> +    make \
> +    mingw32-filesystem \
> +    glibc-devel-32bit \
> +    libSDL2_image-devel \
> +    mingw64-binutils \
> +    nmap \
> +    ncat \
> +    ncurses-devel \
> +    libnettle-devel \
> +    ninja \
> +    mozilla-nss-devel \
> +    libnuma-devel \
> +    perl \
> +    libpixman-1-0-devel \
> +    python3-base \
> +    python3-PyYAML \
> +    python3-numpy \
> +    python3-opencv \
> +    python3-Pillow \
> +    python3-pip \
> +    python3-Sphinx \
> +    python3-virtualenv \
> +    rdma-core-devel \
> +    libSDL2-devel \
> +    snappy-devel \
> +    sparse \
> +    libspice-server-devel \
> +    systemd-devel \
> +    systemtap-sdt-devel \
> +    tar \
> +    tesseract-ocr \
> +    tesseract-ocr-traineddata-english \
> +    usbredir-devel \
> +    virglrenderer-devel \
> +    libvte-2_91-0 \
> +    which \
> +    xen-devel \
> +    zlib-devel
> +ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3.8
> +
> +RUN zypper  --non-interactive install -y $PACKAGES
> +RUN rpm -q $PACKAGES | sort > /packages.txt

Thanks, I gave it a try now and it seems to work fine so far ... but the
initial creation of the container was quite slow, 28 minutes, that's quite a
bit more from what I've seen with the other containers so far:

 https://gitlab.com/huth/qemu/-/jobs/853630446

(other containers took e.g. only 10 minutes like
https://gitlab.com/huth/qemu/-/jobs/853630446 or 15 minutes like
https://gitlab.com/qemu-project/qemu/-/jobs/812284100)

Did I maybe just hit a bad point in time?

Or would it make sense to trim the list of packages that need to be installed?

For example, unless you want to test m68k-softmmu in this container, too,
you don't need tesseract-ocr.

And why do you need mozilla-nss-devel ?

And I think you could also drop the mingw packages for now, unless you want
to cross-compile some Windows binaries with this container?

Also, do we need clang/llvm in here? sparse? nmap? glibc-devel-32bit?
libzip-devel?

And why is there libvte-2_91-0, but no libvte-2_91-devel ?

I think at least some of those packages could be dropped, indeed.

 Thomas


Re: [PATCH] gitlab-ci.yml: Add openSUSE Leap 15.2 for gitlab CI/CD
Posted by AL Yu-Chen Cho 3 years, 5 months ago
On Tue, 2020-11-17 at 12:51 +0100, Thomas Huth wrote:
> On 17/11/2020 07.57, Cho, Yu-Chen wrote:
> > Add build-system-opensuse jobs and add opensuse-leap.docker
> > dockerfile.
> > Use openSUSE Leap 15.2 container image in the gitlab-CI.
> > 
> > Signed-off-by: Cho, Yu-Chen <acho@suse.com>
> > ---
> >  .gitlab-ci.d/containers.yml                   |  5 ++
> >  .gitlab-ci.yml                                | 30 +++++++
> >  tests/docker/dockerfiles/opensuse-leap.docker | 88
> > +++++++++++++++++++
> >  3 files changed, 123 insertions(+)
> >  create mode 100644 tests/docker/dockerfiles/opensuse-leap.docker
> > 
> > diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-
> > ci.d/containers.yml
> > index 11d079ea58..082624a6fa 100644
> > --- a/.gitlab-ci.d/containers.yml
> > +++ b/.gitlab-ci.d/containers.yml
> > @@ -246,3 +246,8 @@ amd64-ubuntu-container:
> >    <<: *container_job_definition
> >    variables:
> >      NAME: ubuntu
> > +
> > +amd64-opensuse-leap-container:
> > +  <<: *container_job_definition
> > +  variables:
> > +    NAME: opensuse-leap
> > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> > index 9a8b375188..bf4759296a 100644
> > --- a/.gitlab-ci.yml
> > +++ b/.gitlab-ci.yml
> > @@ -195,6 +195,36 @@ acceptance-system-centos:
> >      MAKE_CHECK_ARGS: check-acceptance
> >    <<: *acceptance_definition
> >  
> > +build-system-opensuse:
> > +  <<: *native_build_job_definition
> > +  variables:
> > +    IMAGE: opensuse-leap
> > +    TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
> > +    MAKE_CHECK_ARGS: check-build
> > +  artifacts:
> > +    expire_in: 2 days
> > +    paths:
> > +      - build
> > +
> > +check-system-opensuse:
> > +  <<: *native_test_job_definition
> > +  needs:
> > +    - job: build-system-opensuse
> > +      artifacts: true
> > +  variables:
> > +    IMAGE: opensuse-leap
> > +    MAKE_CHECK_ARGS: check
> > +
> > +acceptance-system-opensuse:
> > +  <<: *native_test_job_definition
> > +  needs:
> > +    - job: build-system-opensuse
> > +      artifacts: true
> > +  variables:
> > +    IMAGE: opensuse-leap
> > +    MAKE_CHECK_ARGS: check-acceptance
> > +  <<: *acceptance_definition
> > +
> >  build-disabled:
> >    <<: *native_build_job_definition
> >    variables:
> > diff --git a/tests/docker/dockerfiles/opensuse-leap.docker
> > b/tests/docker/dockerfiles/opensuse-leap.docker
> > new file mode 100644
> > index 0000000000..712eb4fe3a
> > --- /dev/null
> > +++ b/tests/docker/dockerfiles/opensuse-leap.docker
> > @@ -0,0 +1,88 @@
> > +FROM opensuse/leap:15.2
> > +
> > +RUN zypper update -y
> > +
> > +# Please keep this list sorted alphabetically
> > +ENV PACKAGES \
> > +    bc \
> > +    brlapi-devel \
> > +    bzip2 \
> > +    libzip-devel \
> > +    ccache \
> > +    clang \
> > +    cyrus-sasl-devel \
> > +    dbus-1 \
> > +    device-mapper-devel \
> > +    gcc \
> > +    gcc-c++ \
> > +    mkisofs \
> > +    gettext-runtime \
> > +    git \
> > +    glib2-devel \
> > +    glusterfs-devel \
> > +    libgnutls-devel \
> > +    gtk3-devel \
> > +    hostname \
> > +    libaio-devel \
> > +    libasan5 \
> > +    libattr-devel \
> > +    libblockdev-devel \
> > +    libcap-ng-devel \
> > +    libcurl-devel \
> > +    libepoxy-devel \
> > +    libfdt-devel \
> > +    libiscsi-devel \
> > +    libjpeg8-devel \
> > +    libpmem-devel \
> > +    libpng16-devel \
> > +    librbd-devel \
> > +    libseccomp-devel \
> > +    libssh-devel \
> > +    libubsan0 \
> > +    libudev-devel \
> > +    libxml2-devel \
> > +    libzstd-devel \
> > +    llvm \
> > +    lzo-devel \
> > +    make \
> > +    mingw32-filesystem \
> > +    glibc-devel-32bit \
> > +    libSDL2_image-devel \
> > +    mingw64-binutils \
> > +    nmap \
> > +    ncat \
> > +    ncurses-devel \
> > +    libnettle-devel \
> > +    ninja \
> > +    mozilla-nss-devel \
> > +    libnuma-devel \
> > +    perl \
> > +    libpixman-1-0-devel \
> > +    python3-base \
> > +    python3-PyYAML \
> > +    python3-numpy \
> > +    python3-opencv \
> > +    python3-Pillow \
> > +    python3-pip \
> > +    python3-Sphinx \
> > +    python3-virtualenv \
> > +    rdma-core-devel \
> > +    libSDL2-devel \
> > +    snappy-devel \
> > +    sparse \
> > +    libspice-server-devel \
> > +    systemd-devel \
> > +    systemtap-sdt-devel \
> > +    tar \
> > +    tesseract-ocr \
> > +    tesseract-ocr-traineddata-english \
> > +    usbredir-devel \
> > +    virglrenderer-devel \
> > +    libvte-2_91-0 \
> > +    which \
> > +    xen-devel \
> > +    zlib-devel
> > +ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3.8
> > +
> > +RUN zypper  --non-interactive install -y $PACKAGES
> > +RUN rpm -q $PACKAGES | sort > /packages.txt
> 
> Thanks, I gave it a try now and it seems to work fine so far ... but
> the
> initial creation of the container was quite slow, 28 minutes, that's
> quite a
> bit more from what I've seen with the other containers so far:
> 
>  https://gitlab.com/huth/qemu/-/jobs/853630446
> 
> (other containers took e.g. only 10 minutes like
> https://gitlab.com/huth/qemu/-/jobs/853630446 or 15 minutes like
> https://gitlab.com/qemu-project/qemu/-/jobs/812284100)
> 
> Did I maybe just hit a bad point in time?
> 

No, Thanks for your suggestion, I think I can decrease the docker build
duration.


> Or would it make sense to trim the list of packages that need to be
> installed?

yes, I already started to trim, will submit v2 sson.

> 
> For example, unless you want to test m68k-softmmu in this container,
> too,
> you don't need tesseract-ocr.
> 
> And why do you need mozilla-nss-devel ?
> 
> And I think you could also drop the mingw packages for now, unless
> you want
> to cross-compile some Windows binaries with this container?
> 

yes, no problem. The origin plan is add some cross-compiler after this
patch, and that I am not sure which one way to add it is that best (
and that would not use the resource to create the docker image again.
but I think I should patch it later.

> Also, do we need clang/llvm in here? sparse? nmap? glibc-devel-32bit?
> libzip-devel?
> 
> And why is there libvte-2_91-0, but no libvte-2_91-devel ?
> 

yes, it's wrong, that should be vte-devel.

> I think at least some of those packages could be dropped, indeed.
> 

Yes, I'm not so familiar with gitlab CI/CD, but I will modify the
dockerfile to fit the processes, thanks a lot for your suggestion and
comments.

Cheers,
      AL



Re: [PATCH] gitlab-ci.yml: Add openSUSE Leap 15.2 for gitlab CI/CD
Posted by Alex Bennée 3 years, 5 months ago
AL Yu-Chen Cho <acho@suse.com> writes:

> On Tue, 2020-11-17 at 12:51 +0100, Thomas Huth wrote:
>> On 17/11/2020 07.57, Cho, Yu-Chen wrote:
>> > Add build-system-opensuse jobs and add opensuse-leap.docker
>> > dockerfile.
>> > Use openSUSE Leap 15.2 container image in the gitlab-CI.
>> > 
>> > Signed-off-by: Cho, Yu-Chen <acho@suse.com>
>> > ---
>> >  .gitlab-ci.d/containers.yml                   |  5 ++
>> >  .gitlab-ci.yml                                | 30 +++++++
>> >  tests/docker/dockerfiles/opensuse-leap.docker | 88
>> > +++++++++++++++++++
>> >  3 files changed, 123 insertions(+)
>> >  create mode 100644 tests/docker/dockerfiles/opensuse-leap.docker
>> > 
>> > diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-
>> > ci.d/containers.yml
>> > index 11d079ea58..082624a6fa 100644
>> > --- a/.gitlab-ci.d/containers.yml
>> > +++ b/.gitlab-ci.d/containers.yml
>> > @@ -246,3 +246,8 @@ amd64-ubuntu-container:
>> >    <<: *container_job_definition
>> >    variables:
>> >      NAME: ubuntu
>> > +
>> > +amd64-opensuse-leap-container:
>> > +  <<: *container_job_definition
>> > +  variables:
>> > +    NAME: opensuse-leap
>> > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>> > index 9a8b375188..bf4759296a 100644
>> > --- a/.gitlab-ci.yml
>> > +++ b/.gitlab-ci.yml
>> > @@ -195,6 +195,36 @@ acceptance-system-centos:
>> >      MAKE_CHECK_ARGS: check-acceptance
>> >    <<: *acceptance_definition
>> >  
>> > +build-system-opensuse:
>> > +  <<: *native_build_job_definition
>> > +  variables:
>> > +    IMAGE: opensuse-leap
>> > +    TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
>> > +    MAKE_CHECK_ARGS: check-build
>> > +  artifacts:
>> > +    expire_in: 2 days
>> > +    paths:
>> > +      - build
>> > +
>> > +check-system-opensuse:
>> > +  <<: *native_test_job_definition
>> > +  needs:
>> > +    - job: build-system-opensuse
>> > +      artifacts: true
>> > +  variables:
>> > +    IMAGE: opensuse-leap
>> > +    MAKE_CHECK_ARGS: check
>> > +
>> > +acceptance-system-opensuse:
>> > +  <<: *native_test_job_definition
>> > +  needs:
>> > +    - job: build-system-opensuse
>> > +      artifacts: true
>> > +  variables:
>> > +    IMAGE: opensuse-leap
>> > +    MAKE_CHECK_ARGS: check-acceptance
>> > +  <<: *acceptance_definition
>> > +
>> >  build-disabled:
>> >    <<: *native_build_job_definition
>> >    variables:
>> > diff --git a/tests/docker/dockerfiles/opensuse-leap.docker
>> > b/tests/docker/dockerfiles/opensuse-leap.docker
>> > new file mode 100644
>> > index 0000000000..712eb4fe3a
>> > --- /dev/null
>> > +++ b/tests/docker/dockerfiles/opensuse-leap.docker
>> > @@ -0,0 +1,88 @@
>> > +FROM opensuse/leap:15.2
>> > +
>> > +RUN zypper update -y
>> > +
>> > +# Please keep this list sorted alphabetically
>> > +ENV PACKAGES \
>> > +    bc \
>> > +    brlapi-devel \
>> > +    bzip2 \
>> > +    libzip-devel \
>> > +    ccache \
>> > +    clang \
>> > +    cyrus-sasl-devel \
>> > +    dbus-1 \
>> > +    device-mapper-devel \
>> > +    gcc \
>> > +    gcc-c++ \
>> > +    mkisofs \
>> > +    gettext-runtime \
>> > +    git \
>> > +    glib2-devel \
>> > +    glusterfs-devel \
>> > +    libgnutls-devel \
>> > +    gtk3-devel \
>> > +    hostname \
>> > +    libaio-devel \
>> > +    libasan5 \
>> > +    libattr-devel \
>> > +    libblockdev-devel \
>> > +    libcap-ng-devel \
>> > +    libcurl-devel \
>> > +    libepoxy-devel \
>> > +    libfdt-devel \
>> > +    libiscsi-devel \
>> > +    libjpeg8-devel \
>> > +    libpmem-devel \
>> > +    libpng16-devel \
>> > +    librbd-devel \
>> > +    libseccomp-devel \
>> > +    libssh-devel \
>> > +    libubsan0 \
>> > +    libudev-devel \
>> > +    libxml2-devel \
>> > +    libzstd-devel \
>> > +    llvm \
>> > +    lzo-devel \
>> > +    make \
>> > +    mingw32-filesystem \
>> > +    glibc-devel-32bit \
>> > +    libSDL2_image-devel \
>> > +    mingw64-binutils \
>> > +    nmap \
>> > +    ncat \
>> > +    ncurses-devel \
>> > +    libnettle-devel \
>> > +    ninja \
>> > +    mozilla-nss-devel \
>> > +    libnuma-devel \
>> > +    perl \
>> > +    libpixman-1-0-devel \
>> > +    python3-base \
>> > +    python3-PyYAML \
>> > +    python3-numpy \
>> > +    python3-opencv \
>> > +    python3-Pillow \
>> > +    python3-pip \
>> > +    python3-Sphinx \
>> > +    python3-virtualenv \
>> > +    rdma-core-devel \
>> > +    libSDL2-devel \
>> > +    snappy-devel \
>> > +    sparse \
>> > +    libspice-server-devel \
>> > +    systemd-devel \
>> > +    systemtap-sdt-devel \
>> > +    tar \
>> > +    tesseract-ocr \
>> > +    tesseract-ocr-traineddata-english \
>> > +    usbredir-devel \
>> > +    virglrenderer-devel \
>> > +    libvte-2_91-0 \
>> > +    which \
>> > +    xen-devel \
>> > +    zlib-devel
>> > +ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3.8
>> > +
>> > +RUN zypper  --non-interactive install -y $PACKAGES
>> > +RUN rpm -q $PACKAGES | sort > /packages.txt
>> 
>> Thanks, I gave it a try now and it seems to work fine so far ... but
>> the
>> initial creation of the container was quite slow, 28 minutes, that's
>> quite a
>> bit more from what I've seen with the other containers so far:
>> 
>>  https://gitlab.com/huth/qemu/-/jobs/853630446
>> 
>> (other containers took e.g. only 10 minutes like
>> https://gitlab.com/huth/qemu/-/jobs/853630446 or 15 minutes like
>> https://gitlab.com/qemu-project/qemu/-/jobs/812284100)
>> 
>> Did I maybe just hit a bad point in time?
>> 
>
> No, Thanks for your suggestion, I think I can decrease the docker build
> duration.
>
>
>> Or would it make sense to trim the list of packages that need to be
>> installed?
>
> yes, I already started to trim, will submit v2 sson.
>
>> 
>> For example, unless you want to test m68k-softmmu in this container,
>> too,
>> you don't need tesseract-ocr.
>> 
>> And why do you need mozilla-nss-devel ?
>> 
>> And I think you could also drop the mingw packages for now, unless
>> you want
>> to cross-compile some Windows binaries with this container?
>> 
>
> yes, no problem. The origin plan is add some cross-compiler after this
> patch, and that I am not sure which one way to add it is that best (
> and that would not use the resource to create the docker image again.
> but I think I should patch it later.

I'd keep the focus on building the specific OpenSUSE binaries. We have
pretty good cross compiler support from Debian already so unless
OpenSUSE packages some architectures we don't already have covered then
I would suggest keeping it light. Even in the Debian case we layer the
images so each cross compiler shares a common light base and not a full
featured build everything image.

-- 
Alex Bennée

Re: [PATCH] gitlab-ci.yml: Add openSUSE Leap 15.2 for gitlab CI/CD
Posted by Daniel P. Berrangé 3 years, 5 months ago
On Thu, Nov 19, 2020 at 03:37:50PM +0800, AL Yu-Chen Cho wrote:
> On Tue, 2020-11-17 at 12:51 +0100, Thomas Huth wrote:
> > On 17/11/2020 07.57, Cho, Yu-Chen wrote:
> > > Add build-system-opensuse jobs and add opensuse-leap.docker
> > > dockerfile.
> > > Use openSUSE Leap 15.2 container image in the gitlab-CI.
> > > 
> > > Signed-off-by: Cho, Yu-Chen <acho@suse.com>
> > > ---
> > >  .gitlab-ci.d/containers.yml                   |  5 ++
> > >  .gitlab-ci.yml                                | 30 +++++++
> > >  tests/docker/dockerfiles/opensuse-leap.docker | 88
> > > +++++++++++++++++++
> > >  3 files changed, 123 insertions(+)
> > >  create mode 100644 tests/docker/dockerfiles/opensuse-leap.docker
> > > 
> > > diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-
> > > ci.d/containers.yml
> > > index 11d079ea58..082624a6fa 100644
> > > --- a/.gitlab-ci.d/containers.yml
> > > +++ b/.gitlab-ci.d/containers.yml
> > > @@ -246,3 +246,8 @@ amd64-ubuntu-container:
> > >    <<: *container_job_definition
> > >    variables:
> > >      NAME: ubuntu
> > > +
> > > +amd64-opensuse-leap-container:
> > > +  <<: *container_job_definition
> > > +  variables:
> > > +    NAME: opensuse-leap
> > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> > > index 9a8b375188..bf4759296a 100644
> > > --- a/.gitlab-ci.yml
> > > +++ b/.gitlab-ci.yml
> > > @@ -195,6 +195,36 @@ acceptance-system-centos:
> > >      MAKE_CHECK_ARGS: check-acceptance
> > >    <<: *acceptance_definition
> > >  
> > > +build-system-opensuse:
> > > +  <<: *native_build_job_definition
> > > +  variables:
> > > +    IMAGE: opensuse-leap
> > > +    TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
> > > +    MAKE_CHECK_ARGS: check-build
> > > +  artifacts:
> > > +    expire_in: 2 days
> > > +    paths:
> > > +      - build
> > > +
> > > +check-system-opensuse:
> > > +  <<: *native_test_job_definition
> > > +  needs:
> > > +    - job: build-system-opensuse
> > > +      artifacts: true
> > > +  variables:
> > > +    IMAGE: opensuse-leap
> > > +    MAKE_CHECK_ARGS: check
> > > +
> > > +acceptance-system-opensuse:
> > > +  <<: *native_test_job_definition
> > > +  needs:
> > > +    - job: build-system-opensuse
> > > +      artifacts: true
> > > +  variables:
> > > +    IMAGE: opensuse-leap
> > > +    MAKE_CHECK_ARGS: check-acceptance
> > > +  <<: *acceptance_definition
> > > +
> > >  build-disabled:
> > >    <<: *native_build_job_definition
> > >    variables:
> > > diff --git a/tests/docker/dockerfiles/opensuse-leap.docker
> > > b/tests/docker/dockerfiles/opensuse-leap.docker
> > > new file mode 100644
> > > index 0000000000..712eb4fe3a
> > > --- /dev/null
> > > +++ b/tests/docker/dockerfiles/opensuse-leap.docker
> > > @@ -0,0 +1,88 @@
> > > +FROM opensuse/leap:15.2
> > > +
> > > +RUN zypper update -y
> > > +
> > > +# Please keep this list sorted alphabetically
> > > +ENV PACKAGES \
> > > +    bc \
> > > +    brlapi-devel \
> > > +    bzip2 \
> > > +    libzip-devel \
> > > +    ccache \
> > > +    clang \
> > > +    cyrus-sasl-devel \
> > > +    dbus-1 \
> > > +    device-mapper-devel \
> > > +    gcc \
> > > +    gcc-c++ \
> > > +    mkisofs \
> > > +    gettext-runtime \
> > > +    git \
> > > +    glib2-devel \
> > > +    glusterfs-devel \
> > > +    libgnutls-devel \
> > > +    gtk3-devel \
> > > +    hostname \
> > > +    libaio-devel \
> > > +    libasan5 \
> > > +    libattr-devel \
> > > +    libblockdev-devel \
> > > +    libcap-ng-devel \
> > > +    libcurl-devel \
> > > +    libepoxy-devel \
> > > +    libfdt-devel \
> > > +    libiscsi-devel \
> > > +    libjpeg8-devel \
> > > +    libpmem-devel \
> > > +    libpng16-devel \
> > > +    librbd-devel \
> > > +    libseccomp-devel \
> > > +    libssh-devel \
> > > +    libubsan0 \
> > > +    libudev-devel \
> > > +    libxml2-devel \
> > > +    libzstd-devel \
> > > +    llvm \
> > > +    lzo-devel \
> > > +    make \
> > > +    mingw32-filesystem \
> > > +    glibc-devel-32bit \
> > > +    libSDL2_image-devel \
> > > +    mingw64-binutils \
> > > +    nmap \
> > > +    ncat \
> > > +    ncurses-devel \
> > > +    libnettle-devel \
> > > +    ninja \
> > > +    mozilla-nss-devel \
> > > +    libnuma-devel \
> > > +    perl \
> > > +    libpixman-1-0-devel \
> > > +    python3-base \
> > > +    python3-PyYAML \
> > > +    python3-numpy \
> > > +    python3-opencv \
> > > +    python3-Pillow \
> > > +    python3-pip \
> > > +    python3-Sphinx \
> > > +    python3-virtualenv \
> > > +    rdma-core-devel \
> > > +    libSDL2-devel \
> > > +    snappy-devel \
> > > +    sparse \
> > > +    libspice-server-devel \
> > > +    systemd-devel \
> > > +    systemtap-sdt-devel \
> > > +    tar \
> > > +    tesseract-ocr \
> > > +    tesseract-ocr-traineddata-english \
> > > +    usbredir-devel \
> > > +    virglrenderer-devel \
> > > +    libvte-2_91-0 \
> > > +    which \
> > > +    xen-devel \
> > > +    zlib-devel
> > > +ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3.8
> > > +
> > > +RUN zypper  --non-interactive install -y $PACKAGES
> > > +RUN rpm -q $PACKAGES | sort > /packages.txt
> > 
> > Thanks, I gave it a try now and it seems to work fine so far ... but
> > the
> > initial creation of the container was quite slow, 28 minutes, that's
> > quite a
> > bit more from what I've seen with the other containers so far:
> > 
> >  https://gitlab.com/huth/qemu/-/jobs/853630446
> > 
> > (other containers took e.g. only 10 minutes like
> > https://gitlab.com/huth/qemu/-/jobs/853630446 or 15 minutes like
> > https://gitlab.com/qemu-project/qemu/-/jobs/812284100)
> > 
> > Did I maybe just hit a bad point in time?
> > 
> 
> No, Thanks for your suggestion, I think I can decrease the docker build
> duration.
> 
> 
> > Or would it make sense to trim the list of packages that need to be
> > installed?
> 
> yes, I already started to trim, will submit v2 sson.
> 
> > 
> > For example, unless you want to test m68k-softmmu in this container,
> > too,
> > you don't need tesseract-ocr.
> > 
> > And why do you need mozilla-nss-devel ?
> > 
> > And I think you could also drop the mingw packages for now, unless
> > you want
> > to cross-compile some Windows binaries with this container?
> > 
> 
> yes, no problem. The origin plan is add some cross-compiler after this
> patch, and that I am not sure which one way to add it is that best (
> and that would not use the resource to create the docker image again.
> but I think I should patch it later.

We already have cross compiler testing with the Fedora (mingw) and Debian
images (non-x86 linux). I don't think we want to add more cross compiler
stuff if it just duplicating coverage we already haev.


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|