diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2018-03-13 13:19:02 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2018-03-13 13:19:02 +0000 |
commit | 8c00b612e5a35905ca5caa23cec207bd55e011be (patch) | |
tree | 56544b4bb3cae9d9f225f2802849ac983e53acd5 /ci | |
parent | 3de1462ed8a6e0820e2018aa67197c15f291ab16 (diff) | |
download | strace-8c00b612e5a35905ca5caa23cec207bd55e011be.tar.gz |
ci: rename travis-build.sh and travis-install.sh scripts
* travis-build.sh: Rename to ci/run-build-and-tests.sh, all callers
updated.
* travis-install.sh: Rename to ci/install-dependencies.sh, all callers
updated.
Diffstat (limited to 'ci')
-rwxr-xr-x | ci/install-dependencies.sh | 76 | ||||
-rwxr-xr-x | ci/run-build-and-tests.sh | 100 |
2 files changed, 176 insertions, 0 deletions
diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh new file mode 100755 index 000000000..2fbd275b4 --- /dev/null +++ b/ci/install-dependencies.sh @@ -0,0 +1,76 @@ +#!/bin/sh -ex + +type sudo >/dev/null 2>&1 && sudo=sudo || sudo= +common_packages='autoconf automake file gawk gcc-multilib git gzip make xz-utils' + +updated= +apt_get_install() +{ + [ -n "$updated" ] || { + $sudo apt-get -qq update + updated=1 + } + $sudo apt-get -qq --no-install-suggests --no-install-recommends \ + install -y "$@" +} + +case "$KHEADERS" in + */*) + git clone --depth=1 https://github.com/"$KHEADERS" kernel + $sudo make -C kernel headers_install INSTALL_HDR_PATH=/opt/kernel + $sudo rm -rf kernel + KHEADERS_INC=/opt/kernel/include + ;; + *) + KHEADERS_INC=/usr/include + ;; +esac + +case "$CC" in + gcc) + apt_get_install $common_packages + ;; + gcc-*) + $sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test + apt_get_install $common_packages "$CC"-multilib + ;; + clang*) + apt_get_install $common_packages "$CC" + ;; + musl-gcc) + apt_get_install $common_packages ca-certificates + git clone --depth=1 https://github.com/strace/musl + cd musl + CC=gcc + build= + case "${TARGET-}" in + x32) + CC="$CC -mx32" + ;; + x86) + CC="$CC -m32" + build='--build=i686-pc-linux-gnu --target=i686-pc-linux-gnu' + ;; + esac + ./configure --prefix=/opt/musl --exec-prefix=/usr ${build} + make + $sudo make install + cd - + rm -rf musl + $sudo ln -s \ + $KHEADERS_INC/asm* \ + $KHEADERS_INC/linux \ + $KHEADERS_INC/mtd \ + /opt/musl/include/ + ;; +esac + +case "${CHECK-}" in + coverage) + apt_get_install lcov + pip install --user codecov + ;; + valgrind) + apt_get_install valgrind + ;; +esac diff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh new file mode 100755 index 000000000..55bd84040 --- /dev/null +++ b/ci/run-build-and-tests.sh @@ -0,0 +1,100 @@ +#!/bin/sh -ex + +DISTCHECK_CONFIGURE_FLAGS='--disable-dependency-tracking' +export DISTCHECK_CONFIGURE_FLAGS + +case "$CC" in + gcc*) + DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --enable-gcc-Werror" + ;; + clang-*) + # clang -mx32 fails with the following error: + # clang: error: clang frontend command failed with exit code 70 (use -v to see invocation) + export st_cv_mx32_runtime=no + ;; +esac + +case "${TARGET-}" in + x32) + CC="$CC -mx32" + ;; + x86) + CC="$CC -m32" + DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --build=i686-pc-linux-gnu --target=i686-pc-linux-gnu" + ;; +esac + +case "$KHEADERS" in + */*) + CPPFLAGS='-isystem /opt/kernel/include' + export CPPFLAGS + ;; +esac + +case "${CHECK-}" in + coverage) + DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --enable-code-coverage" + CFLAGS='-g -O0' + CFLAGS_FOR_BUILD="$CFLAGS" + export CFLAGS CFLAGS_FOR_BUILD + ;; + valgrind) + DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --enable-valgrind" + ;; +esac + +echo 'BEGIN OF BUILD ENVIRONMENT INFORMATION' +uname -a |head -1 +libc="$(ldd /bin/sh |sed -n 's|^[^/]*\(/[^ ]*/libc\.so[^ ]*\).*|\1|p' |head -1)" +$libc |head -1 +file -L /bin/sh +$CC --version |head -1 +$CC -print-multi-lib ||: +make --version |head -1 +autoconf --version |head -1 +automake --version |head -1 +kver="$(printf '%s\n%s\n' '#include <linux/version.h>' 'LINUX_VERSION_CODE' | $CC -E -P -)" +printf 'kernel-headers %s.%s.%s\n' $(($kver/65536)) $(($kver/256%256)) $(($kver%256)) +echo 'END OF BUILD ENVIRONMENT INFORMATION' + +export CC_FOR_BUILD="$CC" + +./git-set-file-times +./bootstrap +./configure --enable-maintainer-mode \ + ${DISTCHECK_CONFIGURE_FLAGS-} \ + || { + rc=$? + cat config.log + exit $rc +} + +j=-j`getconf _NPROCESSORS_ONLN 2> /dev/null` || j= + +case "${CHECK-}" in + coverage) + make -k $j all VERBOSE=${VERBOSE-} + make -k $j check VERBOSE=${VERBOSE-} + codecov --gcov-args=-abcp ||: + echo 'BEGIN OF TEST SUITE INFORMATION' + tail -n 99999 -- tests*/test-suite.log tests*/ksysent.log + echo 'END OF TEST SUITE INFORMATION' + ;; + valgrind) + make -k $j all VERBOSE=${VERBOSE-} + rc=$? + for n in ${VALGRIND_TOOLS:-memcheck helgrind drd}; do + make -k $j -C "${VALGRIND_TESTDIR:-.}" \ + check-valgrind-$n VERBOSE=${VERBOSE-} || + rc=$? + done + echo 'BEGIN OF TEST SUITE INFORMATION' + tail -n 99999 -- tests*/test-suite*.log tests*/ksysent.log || + rc=$? + echo 'END OF TEST SUITE INFORMATION' + [ "$rc" -eq 0 ] + ;; + *) + make -k $j distcheck VERBOSE=${VERBOSE-} + ;; +esac |