diff mbox series

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

Message ID 20201117065719.30150-1-acho@suse.com (mailing list archive)
State New, archived
Headers show
Series gitlab-ci.yml: Add openSUSE Leap 15.2 for gitlab CI/CD | expand

Commit Message

Al Cho Nov. 17, 2020, 6:57 a.m. UTC
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

Comments

Thomas Huth Nov. 17, 2020, 11:51 a.m. UTC | #1
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
Al Cho Nov. 19, 2020, 7:37 a.m. UTC | #2
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
Daniel P. Berrangé Nov. 19, 2020, 9:29 a.m. UTC | #3
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
Alex Bennée Nov. 19, 2020, 10:34 a.m. UTC | #4
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.
diff mbox series

Patch

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