mirror of
https://github.com/checkpoint-restore/criu
synced 2025-09-03 15:55:53 +00:00
travis: switch all arm related tests to real hardware
This switches all arm related tests (32bit and 64bit) to the aarch64 systems Travis provides. For arm32 we are running in a armv7hf container on aarch64 with 'setarch linux32'. The main changes are that docker on Travis aarch64 cannot use '--privileged' as Travis is using unprivileged LXD containers to setup the testing environment. Signed-off-by: Adrian Reber <areber@redhat.com>
This commit is contained in:
committed by
Andrei Vagin
parent
075f1beaf7
commit
eab8cf0775
50
.travis.yml
50
.travis.yml
@@ -1,6 +1,6 @@
|
|||||||
language: c
|
language: c
|
||||||
sudo: required
|
sudo: required
|
||||||
dist: xenial
|
dist: bionic
|
||||||
cache: ccache
|
cache: ccache
|
||||||
services:
|
services:
|
||||||
- docker
|
- docker
|
||||||
@@ -9,21 +9,12 @@ env:
|
|||||||
- TR_ARCH=local CLANG=1
|
- TR_ARCH=local CLANG=1
|
||||||
- TR_ARCH=local COMPAT_TEST=y
|
- TR_ARCH=local COMPAT_TEST=y
|
||||||
- TR_ARCH=local CLANG=1 COMPAT_TEST=y
|
- TR_ARCH=local CLANG=1 COMPAT_TEST=y
|
||||||
- TR_ARCH=alpine
|
|
||||||
- TR_ARCH=fedora-asan
|
|
||||||
- TR_ARCH=x86_64
|
- TR_ARCH=x86_64
|
||||||
- TR_ARCH=x86_64 CLANG=1
|
- TR_ARCH=x86_64 CLANG=1
|
||||||
- TR_ARCH=armv7hf
|
|
||||||
- TR_ARCH=ppc64le
|
- TR_ARCH=ppc64le
|
||||||
- TR_ARCH=s390x
|
- TR_ARCH=s390x
|
||||||
- TR_ARCH=armv7hf CLANG=1
|
|
||||||
- TR_ARCH=ppc64le CLANG=1
|
- TR_ARCH=ppc64le CLANG=1
|
||||||
- TR_ARCH=alpine CLANG=1
|
|
||||||
- TR_ARCH=docker-test
|
- TR_ARCH=docker-test
|
||||||
- TR_ARCH=fedora-rawhide
|
|
||||||
- TR_ARCH=fedora-rawhide-aarch64
|
|
||||||
- TR_ARCH=centos
|
|
||||||
- TR_ARCH=podman-test
|
|
||||||
- TR_ARCH=openj9-test
|
- TR_ARCH=openj9-test
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
@@ -36,10 +27,47 @@ matrix:
|
|||||||
arch: arm64
|
arch: arm64
|
||||||
env: TR_ARCH=local CLANG=1
|
env: TR_ARCH=local CLANG=1
|
||||||
dist: bionic
|
dist: bionic
|
||||||
|
- os: linux
|
||||||
|
arch: arm64
|
||||||
|
# This runs on aarch64 with 'setarch linux32'
|
||||||
|
env: TR_ARCH=armv7hf
|
||||||
|
dist: bionic
|
||||||
|
- os: linux
|
||||||
|
arch: arm64
|
||||||
|
# This runs on aarch64 with 'setarch linux32'
|
||||||
|
env: TR_ARCH=armv7hf CLANG=1
|
||||||
|
dist: bionic
|
||||||
|
- os: linux
|
||||||
|
arch: arm64
|
||||||
|
env: TR_ARCH=fedora-rawhide
|
||||||
|
dist: bionic
|
||||||
|
- os: linux
|
||||||
|
arch: amd64
|
||||||
|
env: TR_ARCH=fedora-rawhide
|
||||||
|
dist: xenial # test hangs on bionic
|
||||||
|
- os: linux
|
||||||
|
arch: amd64
|
||||||
|
env: TR_ARCH=podman-test
|
||||||
|
dist: bionic
|
||||||
|
- os: linux
|
||||||
|
arch: amd64
|
||||||
|
env: TR_ARCH=alpine CLANG=1
|
||||||
|
dist: xenial # test hangs on bionic
|
||||||
|
- os: linux
|
||||||
|
arch: amd64
|
||||||
|
env: TR_ARCH=alpine
|
||||||
|
dist: xenial # test hangs on bionic
|
||||||
|
- os: linux
|
||||||
|
arch: amd64
|
||||||
|
env: TR_ARCH=centos
|
||||||
|
dist: xenial # test hangs on bionic
|
||||||
|
- os: linux
|
||||||
|
arch: amd64
|
||||||
|
env: TR_ARCH=fedora-asan
|
||||||
|
dist: xenial # test hangs on bionic
|
||||||
allow_failures:
|
allow_failures:
|
||||||
- env: TR_ARCH=docker-test
|
- env: TR_ARCH=docker-test
|
||||||
- env: TR_ARCH=fedora-rawhide
|
- env: TR_ARCH=fedora-rawhide
|
||||||
- env: TR_ARCH=fedora-rawhide-aarch64
|
|
||||||
- env: TR_ARCH=s390x
|
- env: TR_ARCH=s390x
|
||||||
- env: TR_ARCH=local GCOV=1
|
- env: TR_ARCH=local GCOV=1
|
||||||
script:
|
script:
|
||||||
|
@@ -1,3 +1 @@
|
|||||||
FROM arm32v7/ubuntu:xenial
|
FROM arm32v7/ubuntu:bionic
|
||||||
|
|
||||||
COPY scripts/build/qemu-user-static/usr/bin/qemu-arm-static /usr/bin/qemu-arm-static
|
|
||||||
|
@@ -1 +1 @@
|
|||||||
Dockerfile.tmpl
|
Dockerfile.linux32.tmpl
|
@@ -1,3 +0,0 @@
|
|||||||
FROM arm64v8/fedora:rawhide
|
|
||||||
|
|
||||||
COPY scripts/build/qemu-user-static/usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
|
|
@@ -1 +0,0 @@
|
|||||||
Dockerfile.fedora.tmpl
|
|
47
scripts/build/Dockerfile.linux32.tmpl
Normal file
47
scripts/build/Dockerfile.linux32.tmpl
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
ARG CC=gcc
|
||||||
|
ARG ENV1=FOOBAR
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
ccache \
|
||||||
|
libnet-dev \
|
||||||
|
libnl-route-3-dev \
|
||||||
|
$CC \
|
||||||
|
bsdmainutils \
|
||||||
|
build-essential \
|
||||||
|
git-core \
|
||||||
|
iptables \
|
||||||
|
libaio-dev \
|
||||||
|
libcap-dev \
|
||||||
|
libgnutls28-dev \
|
||||||
|
libgnutls30 \
|
||||||
|
libnl-3-dev \
|
||||||
|
libprotobuf-c-dev \
|
||||||
|
libprotobuf-dev \
|
||||||
|
libselinux-dev \
|
||||||
|
pkg-config \
|
||||||
|
protobuf-c-compiler \
|
||||||
|
protobuf-compiler \
|
||||||
|
python-minimal \
|
||||||
|
python-future
|
||||||
|
|
||||||
|
COPY . /criu
|
||||||
|
WORKDIR /criu
|
||||||
|
ENV CC="ccache $CC" CCACHE_DIR=/tmp/.ccache CCACHE_NOCOMPRESS=1 $ENV1=yes
|
||||||
|
|
||||||
|
RUN uname -m && setarch linux32 uname -m && setarch --list
|
||||||
|
|
||||||
|
RUN mv .ccache /tmp && make mrproper && ccache -s && \
|
||||||
|
date && \
|
||||||
|
# Check single object build
|
||||||
|
setarch linux32 make -j $(nproc) CC="$CC" criu/parasite-syscall.o && \
|
||||||
|
# Compile criu
|
||||||
|
setarch linux32 make -j $(nproc) CC="$CC" && \
|
||||||
|
date && \
|
||||||
|
# Check that "make mrproper" works
|
||||||
|
setarch linux32 make mrproper && ! git clean -ndx --exclude=scripts/build \
|
||||||
|
--exclude=.config --exclude=test | grep .
|
||||||
|
|
||||||
|
# Compile tests
|
||||||
|
RUN date && setarch linux32 make -j $(nproc) CC="$CC" -C test/zdtm && date
|
||||||
|
|
||||||
|
#RUN make test/compel/handle_binary && ./test/compel/handle_binary
|
@@ -1,5 +1,5 @@
|
|||||||
QEMU_ARCHES := armv7hf ppc64le s390x fedora-rawhide-aarch64 # require qemu
|
QEMU_ARCHES := ppc64le s390x # require qemu
|
||||||
ARCHES := $(QEMU_ARCHES) aarch64 x86_64 fedora-asan fedora-rawhide centos
|
ARCHES := $(QEMU_ARCHES) aarch64 x86_64 fedora-asan fedora-rawhide centos armv7hf
|
||||||
TARGETS := $(ARCHES) alpine
|
TARGETS := $(ARCHES) alpine
|
||||||
TARGETS_CLANG := $(addsuffix $(TARGETS),-clang)
|
TARGETS_CLANG := $(addsuffix $(TARGETS),-clang)
|
||||||
CONTAINER_RUNTIME := docker
|
CONTAINER_RUNTIME := docker
|
||||||
|
@@ -28,6 +28,8 @@ endef
|
|||||||
export DOCKER_JSON
|
export DOCKER_JSON
|
||||||
|
|
||||||
ifeq ($(UNAME),x86_64)
|
ifeq ($(UNAME),x86_64)
|
||||||
|
# On anything besides x86_64 Travis is running unprivileged LXD
|
||||||
|
# containers which do not support running docker with '--privileged'.
|
||||||
CONTAINER_OPTS := --rm -it --privileged -v /lib/modules:/lib/modules --tmpfs /run
|
CONTAINER_OPTS := --rm -it --privileged -v /lib/modules:/lib/modules --tmpfs /run
|
||||||
else
|
else
|
||||||
CONTAINER_OPTS := --rm -v /lib/modules:/lib/modules --tmpfs /run
|
CONTAINER_OPTS := --rm -v /lib/modules:/lib/modules --tmpfs /run
|
||||||
|
@@ -11,7 +11,7 @@ apt-get install -qq \
|
|||||||
|
|
||||||
apt-get update -qq
|
apt-get update -qq
|
||||||
|
|
||||||
apt-get install -qqy podman
|
apt-get install -qqy podman containernetworking-plugins
|
||||||
|
|
||||||
export SKIP_TRAVIS_TEST=1
|
export SKIP_TRAVIS_TEST=1
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user