mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 08:03:01 +09:00
this contains a fix for android build (arm64) of missing preadv/pwritev symbols. Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
179 lines
4.6 KiB
YAML
179 lines
4.6 KiB
YAML
version: 2
|
|
general:
|
|
artifacts:
|
|
|
|
do_steps: &do_steps
|
|
steps:
|
|
- run: echo "$CROSS_COMPILE" > ~/_cross_compile
|
|
- restore_cache:
|
|
key: code-tree-shallow-{{ .Environment.CACHE_VERSION }}
|
|
- run:
|
|
name: checkout build tree
|
|
command: |
|
|
mkdir -p ~/.ssh/
|
|
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
|
|
if ! [ -d .git ]; then
|
|
git clone --depth=1 $CIRCLE_REPOSITORY_URL .;
|
|
fi
|
|
if [[ $CIRCLE_BRANCH == pull/* ]]; then
|
|
git fetch --depth=1 origin $CIRCLE_BRANCH/head;
|
|
else
|
|
git fetch --depth=1 origin $CIRCLE_BRANCH;
|
|
fi
|
|
git reset --hard $CIRCLE_SHA1
|
|
- save_cache:
|
|
key: code-tree-shallow-{{ .Environment.CACHE_VERSION }}-{{ epoch }}
|
|
paths:
|
|
- /home/ubuntu/project/.git
|
|
- run:
|
|
name: clean
|
|
command: |
|
|
make mrproper
|
|
cd tools/lkl && make clean-conf
|
|
rm -rf ~/junit
|
|
- run: mkdir -p /home/ubuntu/.ccache
|
|
- restore_cache:
|
|
key: compiler-cache-{{ checksum "~/_cross_compile" }}-{{ .Environment.CACHE_VERSION }}
|
|
- run:
|
|
name: build DPDK
|
|
command: |
|
|
if [ "$MKARG" = "dpdk=yes" ]; then
|
|
sudo apt-get update
|
|
if ! sudo apt-get install -y linux-headers-$(uname -r) ; then
|
|
cd /lib/modules && sudo ln -sf 4.4.0-97-generic `uname -r` && \
|
|
cd /home/ubuntu/project
|
|
fi
|
|
cd tools/lkl && ./scripts/dpdk-sdk-build.sh;
|
|
fi
|
|
- run:
|
|
name: copy mingw binutils
|
|
command: |
|
|
if [ "$CROSS_COMPILE" = "i686-w64-mingw32-" ]; then
|
|
sudo cp tools/lkl/bin/i686-w64-mingw32-* /usr/bin;
|
|
fi
|
|
- run:
|
|
name: start emulator
|
|
command: |
|
|
if [[ $CROSS_COMPILE == *android* ]]; then
|
|
emulator -avd Nexus5_API24 -no-window -no-audio -no-boot-anim;
|
|
elif [[ $CROSS_COMPILE == *freebsd* ]] || [[ -n "$LKL_QEMU_TEST" ]]; then
|
|
cd /home/ubuntu && eval $QEMU
|
|
fi
|
|
background: true
|
|
- run: cd tools/lkl && make -j8 ${MKARG}
|
|
- run: mkdir -p ~/destdir && cd tools/lkl && make DESTDIR=~/destdir
|
|
- save_cache:
|
|
paths:
|
|
- /home/ubuntu/.ccache
|
|
key: compiler-cache-{{ checksum "~/_cross_compile" }}-{{ .Environment.CACHE_VERSION }}-{{ epoch }}
|
|
- run:
|
|
name: wait emulator to boot
|
|
command: |
|
|
if [[ $CROSS_COMPILE == *android* ]]; then
|
|
/home/ubuntu/circle-android.sh wait-for-boot;
|
|
elif [[ $CROSS_COMPILE == *freebsd* ]] || [[ -n "$LKL_QEMU_TEST" ]]; then
|
|
while ! $MYSSH -o ConnectTimeout=1 exit 2> /dev/null
|
|
do
|
|
sleep 5
|
|
done
|
|
fi
|
|
- run:
|
|
name: run tests
|
|
command: |
|
|
mkdir -p ~/junit
|
|
make -C tools/lkl run-tests tests="--junit-dir ~/junit"
|
|
find ./tools/lkl/ -type f -name "*.xml" -exec mv {} ~/junit/ \;
|
|
no_output_timeout: "90m"
|
|
- store_test_results:
|
|
path: ~/junit
|
|
- store_artifacts:
|
|
path: ~/junit
|
|
|
|
## Customize the test machine
|
|
jobs:
|
|
x86_64:
|
|
docker:
|
|
- image: lkldocker/circleci-x86_64:v1.4
|
|
environment:
|
|
CROSS_COMPILE: ""
|
|
MKARG: "dpdk=no"
|
|
<<: *do_steps
|
|
|
|
i386:
|
|
docker:
|
|
- image: lkldocker/circleci-i386:v1.4
|
|
environment:
|
|
CROSS_COMPILE: ""
|
|
<<: *do_steps
|
|
|
|
mingw32:
|
|
docker:
|
|
- image: lkldocker/circleci-mingw:v1.4
|
|
environment:
|
|
CROSS_COMPILE: "i686-w64-mingw32-"
|
|
<<: *do_steps
|
|
|
|
android-arm32:
|
|
docker:
|
|
- image: lkldocker/circleci-android-arm32:v1.4
|
|
environment:
|
|
CROSS_COMPILE: "arm-linux-androideabi-"
|
|
LKL_ANDROID_TEST: 1
|
|
ANDROID_SDK_ROOT: /home/ubuntu/android-sdk
|
|
<<: *do_steps
|
|
|
|
android-aarch64:
|
|
docker:
|
|
- image: lkldocker/circleci-android-arm64:v1.4
|
|
environment:
|
|
CROSS_COMPILE: "aarch64-linux-android-"
|
|
LKL_ANDROID_TEST: 1
|
|
ANDROID_SDK_ROOT: /home/ubuntu/android-sdk
|
|
<<: *do_steps
|
|
|
|
freebsd11_x86_64:
|
|
docker:
|
|
- image: lkldocker/circleci-freebsd11-x86_64:v1.4
|
|
environment:
|
|
CROSS_COMPILE: "x86_64-pc-freebsd11-"
|
|
<<: *do_steps
|
|
|
|
x86_64_valgrind:
|
|
docker:
|
|
- image: lkldocker/circleci-x86_64:v1.4
|
|
environment:
|
|
CROSS_COMPILE: ""
|
|
MKARG: "dpdk=no"
|
|
VALGRIND: 1
|
|
<<: *do_steps
|
|
|
|
x86_64_qemu:
|
|
docker:
|
|
- image: lkldocker/circleci-qemu-x86_64:v1.4
|
|
environment:
|
|
CROSS_COMPILE: ""
|
|
MKARG: "dpdk=no"
|
|
LKL_QEMU_TEST: 1
|
|
<<: *do_steps
|
|
|
|
workflows:
|
|
version: 2
|
|
build:
|
|
jobs:
|
|
- x86_64
|
|
- x86_64_qemu
|
|
- mingw32
|
|
- android-aarch64
|
|
- freebsd11_x86_64
|
|
- i386
|
|
nightly:
|
|
triggers:
|
|
- schedule:
|
|
cron: "0 0 * * *"
|
|
filters:
|
|
branches:
|
|
only:
|
|
- master
|
|
jobs:
|
|
- x86_64_valgrind
|