Add --disable-generation targets to emulated archs

These jobs are currently only running on schedules in order
to avoid blocking out day time activity CI.

It also fixes a build in the build and test script used by gitlab ci
for emulation where configuration arguments are not recursively passed
properly.
This commit is contained in:
Paulo Matos 2019-05-11 17:58:09 +02:00
parent 88b00d75f7
commit 04e89b9445
2 changed files with 86 additions and 5 deletions

View File

@ -230,7 +230,7 @@ prepare-cache:qemu:
- .gitlab/build-test.sh --jobs $((cpus + 1)) --maxload ${cpus} --with-arch ${ARCH} --with-debian stretch --with-debian-mirror http://ftp.de.debian.org/debian/ --with-project-path ${CI_PROJECT_DIR} --with-chroot-path /tmp/racket-${ARCH}-${CI_COMMIT_SHORT_SHA}-chroot --with-qemu-path $INSTALL_DIR - .gitlab/build-test.sh --jobs $((cpus + 1)) --maxload ${cpus} --with-arch ${ARCH} --with-debian stretch --with-debian-mirror http://ftp.de.debian.org/debian/ --with-project-path ${CI_PROJECT_DIR} --with-chroot-path /tmp/racket-${ARCH}-${CI_COMMIT_SHORT_SHA}-chroot --with-qemu-path $INSTALL_DIR
dependencies: dependencies:
- prepare-cache:qemu - prepare-cache:qemu
test:native:x86_64: test:native:x86_64:
extends: .preparearch extends: .preparearch
variables: variables:
@ -246,7 +246,8 @@ test:native:armv7l:
tags: tags:
- armv7l - armv7l
- linux - linux
# Emulation targets
test:emulation:arm64: test:emulation:arm64:
extends: .preparearch extends: .preparearch
allow_failure: true allow_failure: true
@ -328,6 +329,86 @@ test:emulation:ppc64el:
ARCH: "ppc64el" ARCH: "ppc64el"
INSTALL_DIR: $CI_PROJECT_DIR/install INSTALL_DIR: $CI_PROJECT_DIR/install
# Emulation targets with --disable-generations
.preparearch:nogenerations:
image: ubuntu:18.04
stage: test
only:
- schedules
tags:
- x86_64
- privileged
- linux
before_script:
- ls -la
- find $INSTALL_DIR -type f
- export PATH=$INSTALL_DIR/bin:$PATH
- apt-get update
script:
- export cpus=$(grep -c ^processor /proc/cpuinfo)
- echo "Detected $cpus cpus"
- .gitlab/build-test.sh --jobs $((cpus + 1)) --maxload ${cpus} --with-arch ${ARCH} --with-debian stretch --with-debian-mirror http://ftp.de.debian.org/debian/ --with-project-path ${CI_PROJECT_DIR} --with-chroot-path /tmp/racket-${ARCH}-${CI_COMMIT_SHORT_SHA}-chroot --with-qemu-path $INSTALL_DIR --with-configure-args '--disable-generations'
dependencies:
- prepare-cache:qemu
test:emulation:nogenerations:arm64:
extends: .preparearch:nogenerations
allow_failure: true
variables:
ARCH: "arm64"
INSTALL_DIR: $CI_PROJECT_DIR/install
test:emulation:nogenerations:armel:
extends: .preparearch:nogenerations
allow_failure: true
variables:
ARCH: "armel"
INSTALL_DIR: $CI_PROJECT_DIR/install
test:emulation:nogenerations:armhf:
extends: .preparearch:nogenerations
allow_failure: true
variables:
ARCH: "armhf"
INSTALL_DIR: $CI_PROJECT_DIR/install
test:emulation:nogenerations:mips:
extends: .preparearch:nogenerations
allow_failure: true
variables:
ARCH: "mips"
INSTALL_DIR: $CI_PROJECT_DIR/install
test:emulation:nogenerations:mipsel:
extends: .preparearch:nogenerations
allow_failure: true
variables:
ARCH: "mipsel"
INSTALL_DIR: $CI_PROJECT_DIR/install
test:emulation:nogenerations:mips64el:
extends: .preparearch:nogenerations
allow_failure: true
variables:
ARCH: "mips64el"
INSTALL_DIR: $CI_PROJECT_DIR/install
test:emulation:nogenerations:s390x:
extends: .preparearch:nogenerations
allow_failure: true
variables:
ARCH: "s390x"
INSTALL_DIR: $CI_PROJECT_DIR/install
test:emulation:nogenerations:ppc64el:
extends: .preparearch:nogenerations
allow_failure: true
variables:
ARCH: "ppc64el"
INSTALL_DIR: $CI_PROJECT_DIR/install
# CS
.preparearch:cs: .preparearch:cs:
image: ubuntu:18.04 image: ubuntu:18.04
stage: test stage: test

View File

@ -183,9 +183,9 @@ function setup_chroot {
# Call ourselves again which will cause tests to run # Call ourselves again which will cause tests to run
echo "Recursively calling script" echo "Recursively calling script"
if [ ${MAKE_TARGET} = "cs" ]; then if [ ${MAKE_TARGET} = "cs" ]; then
chroot "${CHROOT_DIR}" bash -c "cd ${BUILD_DIR} && ./.gitlab/build-test.sh --maxload ${MAXLOAD} --jobs ${JOBS} --with-arch ${ARCH} --with-project-path ${BUILD_DIR} --enable-cs" chroot "${CHROOT_DIR}" bash -c "cd ${BUILD_DIR} && ./.gitlab/build-test.sh --maxload ${MAXLOAD} --jobs ${JOBS} --with-arch ${ARCH} --with-project-path ${BUILD_DIR} --with-configure-args \"${RACKET_CONFIGURE_ARGS}\"" --enable-cs
else else
chroot "${CHROOT_DIR}" bash -c "cd ${BUILD_DIR} && ./.gitlab/build-test.sh --maxload ${MAXLOAD} --jobs ${JOBS} --with-arch ${ARCH} --with-project-path ${BUILD_DIR}" chroot "${CHROOT_DIR}" bash -c "cd ${BUILD_DIR} && ./.gitlab/build-test.sh --maxload ${MAXLOAD} --jobs ${JOBS} --with-arch ${ARCH} --with-project-path ${BUILD_DIR} --with-configure-args \"${RACKET_CONFIGURE_ARGS}\""
fi fi
} }
@ -215,7 +215,7 @@ function setup_binfmts {
"s390x") "s390x")
update-binfmts --install qemu-${QEMU_ARCH} /usr/bin/qemu-${QEMU_ARCH}-static --magic "\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16" --mask "\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff" update-binfmts --install qemu-${QEMU_ARCH} /usr/bin/qemu-${QEMU_ARCH}-static --magic "\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16" --mask "\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff"
;; ;;
"ppc64el") "ppc64le")
update-binfmts --install qemu-${QEMU_ARCH} /usr/bin/qemu-${QEMU_ARCH}-static --magic "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15\x00" --mask "\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\x00" update-binfmts --install qemu-${QEMU_ARCH} /usr/bin/qemu-${QEMU_ARCH}-static --magic "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15\x00" --mask "\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\x00"
;; ;;
*) *)