]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
.gitlab-ci.yml: enable use of Fedora cross toolchain
authorDaiki Ueno <ueno@gnu.org>
Sun, 23 Jul 2023 06:17:32 +0000 (08:17 +0200)
committerDaiki Ueno <ueno@gnu.org>
Mon, 24 Jul 2023 07:14:51 +0000 (09:14 +0200)
This adds new tests for cross-compiling to AArch64, PowerPC 64 (LE),
and s390x through the CI image based on Fedora 38.  The main advantage
of doing this is that the toolchain version is in sync with the
current Fedora native builds.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
.gitlab-ci.yml

index 430063b6b244673a3734de5d8ac9123429ef846c..fe3d21c0daaa5b179e505bbc556fb85f66bdb65b 100644 (file)
@@ -15,6 +15,7 @@ variables:
   DEBIAN_CROSS_BUILD: buildenv-debian-cross-testing
   DEBIAN_X86_CROSS_BUILD: buildenv-debian-x86-cross
   FEDORA_BUILD: buildenv-fedora38
+  FEDORA_CROSS_BUILD: buildenv-cross-fedora38
   MINGW_BUILD: buildenv-mingw-fedora38
   ALPINE_BASE_BUILD: buildenv-alpine-base
   COMPILER: gcc
@@ -30,7 +31,7 @@ variables:
   CHECKJOBS: 16
 
 cache:
-  key: "$CI_JOB_NAME-ver29"
+  key: "$CI_JOB_NAME-ver30"
   paths:
     - cache/
 
@@ -99,6 +100,9 @@ default:
 .fedora:
   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
 
+.fedora-cross:
+  image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_CROSS_BUILD
+
 .fedora-nettle:
   extends:
     - .fedora
@@ -636,6 +640,102 @@ fedora-abicoverage/test:
       - gnutls-prev-abi.tmp/
       - compat_reports/
 
+fedora-cross/bootstrap:
+  extends:
+    - .bootstrap
+    - .fedora-cross
+
+.fedora-cross/build:
+  extends:
+    - .build
+  script:
+    - build=$(build-aux/config.guess)
+    - host=$(echo $CI_JOB_NAME |cut -d/ -f2)
+    - echo "host is $host"
+    - export PKG_CONFIG_PATH=/usr/$host/sys-root/lib64/pkgconfig:/usr/$host/sys-root/lib/pkgconfig
+    - export PKG_CONFIG_SYSROOT_DIR=/usr/$host/sys-root
+    - export CC="ccache $host-gcc"
+    - ./configure --host=$host --build=$build --disable-gcc-warnings
+        --cache-file $CCACHE_FILE --disable-doc --disable-cxx
+        --disable-full-test-suite --with-pkcs12-iter-count=10000
+    - make -j$BUILDJOBS
+    # build tests, but don't execute them
+    - make -j$BUILDJOBS -C tests check TESTS=""
+  tags:
+    - shared
+    - docker
+    - linux
+
+.fedora-cross/test:
+  extends:
+    - .test
+  script:
+    - host=$(echo $CI_JOB_NAME |cut -d/ -f2)
+    - arch=$(echo $host |cut -d- -f1)
+    - mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
+    - echo -1 > /proc/sys/fs/binfmt_misc/qemu-$arch
+    - cat /usr/lib/binfmt.d/qemu-$arch-static.conf > /proc/sys/fs/binfmt_misc/register
+    - make pic-check
+    - make -j$BUILDJOBS -C tests check
+  tags:
+    - shared
+    - docker
+    - linux
+
+fedora-cross/aarch64-linux-gnu/build: # name is important, see .fedora-cross/build
+  extends:
+    - .fedora-cross/build
+    - .fedora-cross
+  needs:
+    - fedora-cross/bootstrap
+
+fedora-cross/aarch64-linux-gnu/test:
+  extends:
+    - .fedora-cross/test
+    - .fedora-cross
+  dependencies:
+    - fedora-cross/aarch64-linux-gnu/build
+  needs:
+    - fedora-cross/aarch64-linux-gnu/build
+  timeout: 2h
+  allow_failure: true
+
+fedora-cross/ppc64le-linux-gnu/build: # name is important, see .fedora-cross/build
+  extends:
+    - .fedora-cross/build
+    - .fedora-cross
+  needs:
+    - fedora-cross/bootstrap
+
+fedora-cross/ppc64le-linux-gnu/test:
+  extends:
+    - .fedora-cross/test
+    - .fedora-cross
+  dependencies:
+    - fedora-cross/ppc64le-linux-gnu/build
+  needs:
+    - fedora-cross/ppc64le-linux-gnu/build
+  timeout: 2h
+  allow_failure: true
+
+fedora-cross/s390x-linux-gnu/build: # name is important, see .fedora-cross/build
+  extends:
+    - .fedora-cross/build
+    - .fedora-cross
+  needs:
+    - fedora-cross/bootstrap
+
+fedora-cross/s390x-linux-gnu/test:
+  extends:
+    - .fedora-cross/test
+    - .fedora-cross
+  dependencies:
+    - fedora-cross/s390x-linux-gnu/build
+  needs:
+    - fedora-cross/s390x-linux-gnu/build
+  timeout: 2h
+  allow_failure: true
+
 ##############################################################################
 ########################### Debian pipelines #################################
 ##############################################################################
@@ -746,24 +846,6 @@ debian-cross/arm-linux-gnueabihf/test:
     - debian-cross/arm-linux-gnueabihf/build
   timeout: 2h
 
-debian-cross/aarch64-linux-gnu/build: # name is important, see .debian-cross/build
-  extends:
-    - .debian-cross/build
-    - .debian-cross-other
-  needs:
-    - debian-cross-other/bootstrap
-
-debian-cross/aarch64-linux-gnu/test:
-  extends:
-    - .debian-cross/test
-    - .debian-cross-other
-  dependencies:
-    - debian-cross/aarch64-linux-gnu/build
-  needs:
-    - debian-cross/aarch64-linux-gnu/build
-  timeout: 2h
-  allow_failure: true
-
 ##############################################################################
 ########################### MinGW pipelines ##################################
 ##############################################################################