diff options
author | Thomas Huth <thuth@redhat.com> | 2020-09-25 16:40:21 +0100 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2020-10-02 12:29:02 +0100 |
commit | 93cc0506f6c0f42e959cd94b627b8d737eecedec (patch) | |
tree | 751fcea6ec2e9a582eb9abdc890015dda02cde3f | |
parent | f4d830c8951b4615db3d558ddeb6ec000c61cac0 (diff) |
tests/docker: Use Fedora containers for MinGW cross-builds in the gitlab-CI
According to our support policy, we do not support Debian 9 in QEMU
anymore, and we only support building the Windows binaries with a
very recent version of the MinGW toolchain. So we should not test
the MinGW cross-compilation with Debian 9 anymore, but switch to
something newer like Fedora. To do this, we need a separate Fedora
container for each build that provides the QEMU_CONFIGURE_OPTS
environment variable.
Unfortunately, the MinGW 64-bit compiler seems to be a little bit
slow, so we also have to disable some features like "capstone" in the
build here to make sure that the CI pipelines still finish within a
reasonable amount of time.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20200921174320.46062-2-thuth@redhat.com>
Message-Id: <20200925154027.12672-10-alex.bennee@linaro.org>
-rw-r--r-- | .gitlab-ci.d/containers.yml | 10 | ||||
-rw-r--r-- | .gitlab-ci.d/crossbuilds.yml | 4 | ||||
-rw-r--r-- | tests/docker/dockerfiles/fedora-win32-cross.docker | 42 | ||||
-rw-r--r-- | tests/docker/dockerfiles/fedora-win64-cross.docker | 38 |
4 files changed, 92 insertions, 2 deletions
diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml index 8c89efeb6d..15e7b564f9 100644 --- a/.gitlab-ci.d/containers.yml +++ b/.gitlab-ci.d/containers.yml @@ -248,6 +248,16 @@ i386-fedora-cross-container: variables: NAME: fedora-i386-cross +win32-fedora-cross-container: + <<: *container_job_definition + variables: + NAME: fedora-win32-cross + +win64-fedora-cross-container: + <<: *container_job_definition + variables: + NAME: fedora-win64-cross + amd64-ubuntu1804-container: <<: *container_job_definition variables: diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml index 4ec7226b5c..510cfec03b 100644 --- a/.gitlab-ci.d/crossbuilds.yml +++ b/.gitlab-ci.d/crossbuilds.yml @@ -105,9 +105,9 @@ cross-s390x-user: cross-win32-system: <<: *cross_system_build_job_definition variables: - IMAGE: debian-win32-cross + IMAGE: fedora-win32-cross cross-win64-system: <<: *cross_system_build_job_definition variables: - IMAGE: debian-win64-cross + IMAGE: fedora-win64-cross diff --git a/tests/docker/dockerfiles/fedora-win32-cross.docker b/tests/docker/dockerfiles/fedora-win32-cross.docker new file mode 100644 index 0000000000..5903e1b0b4 --- /dev/null +++ b/tests/docker/dockerfiles/fedora-win32-cross.docker @@ -0,0 +1,42 @@ +FROM fedora:32 + +# Please keep this list sorted alphabetically +ENV PACKAGES \ + bc \ + bzip2 \ + diffutils \ + findutils \ + gcc \ + gettext \ + git \ + hostname \ + make \ + meson \ + mingw32-bzip2 \ + mingw32-curl \ + mingw32-glib2 \ + mingw32-gmp \ + mingw32-gnutls \ + mingw32-gtk3 \ + mingw32-libjpeg-turbo \ + mingw32-libpng \ + mingw32-libtasn1 \ + mingw32-nettle \ + mingw32-nsis \ + mingw32-pixman \ + mingw32-pkg-config \ + mingw32-SDL2 \ + perl \ + perl-Test-Harness \ + python3 \ + python3-PyYAML \ + python3-setuptools \ + tar \ + which + +RUN dnf install -y $PACKAGES +RUN rpm -q $PACKAGES | sort > /packages.txt +ENV FEATURES mingw + +# Specify the cross prefix for this image (see tests/docker/common.rc) +ENV QEMU_CONFIGURE_OPTS --cross-prefix=i686-w64-mingw32- diff --git a/tests/docker/dockerfiles/fedora-win64-cross.docker b/tests/docker/dockerfiles/fedora-win64-cross.docker new file mode 100644 index 0000000000..7f03cd8ffc --- /dev/null +++ b/tests/docker/dockerfiles/fedora-win64-cross.docker @@ -0,0 +1,38 @@ +FROM fedora:32 + +# Please keep this list sorted alphabetically +ENV PACKAGES \ + bc \ + bzip2 \ + diffutils \ + findutils \ + gcc \ + gettext \ + git \ + hostname \ + make \ + meson \ + mingw64-bzip2 \ + mingw64-curl \ + mingw64-glib2 \ + mingw64-gmp \ + mingw64-gtk3 \ + mingw64-libjpeg-turbo \ + mingw64-libpng \ + mingw64-libtasn1 \ + mingw64-pixman \ + mingw64-pkg-config \ + perl \ + perl-Test-Harness \ + python3 \ + python3-PyYAML \ + python3-setuptools \ + tar \ + which + +RUN dnf install -y $PACKAGES +RUN rpm -q $PACKAGES | sort > /packages.txt +ENV FEATURES mingw + +# Specify the cross prefix for this image (see tests/docker/common.rc) +ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-w64-mingw32- --disable-capstone |