From 66b37bb73735add3c5bf45fea8744f8e59a99114 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Wed, 29 Nov 2017 03:52:27 +0000 Subject: [PATCH] Add initial GitLab CI support * .gitlab-ci.yml: New file. * travis-build.sh: Print $CC -print-multi-lib. Print config.log in case of configure failure. * travis-install.sh: Check sudo availability. Install autoconf, automake, file, gawk, gcc-multilib, git, gzip, make, and xz-utils for all targets. (musl-gcc): Install ca-certificates. --- .gitlab-ci.yml | 37 +++++++++++++++++++++++++++++++++++++ travis-build.sh | 7 ++++++- travis-install.sh | 27 +++++++++++++++------------ 3 files changed, 58 insertions(+), 13 deletions(-) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..0dd2dcee --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,37 @@ +image: "ubuntu:17.10" + +before_script: + - ./travis-install.sh + +variables: + GIT_DEPTH: "2147483647" + SLEEP_A_BIT: "sleep 0.2" + VERBOSE: "1" + +gcc-x86_64: + stage: test + script: ./travis-build.sh + variables: + CC: "gcc" + TARGET: "x86_64" + +gcc-x86: + stage: test + script: ./travis-build.sh + variables: + CC: "gcc" + TARGET: "x86" + +clang-x86_64: + stage: test + script: ./travis-build.sh + variables: + CC: "clang" + TARGET: "x86_64" + +clang-x86: + stage: test + script: ./travis-build.sh + variables: + CC: "clang" + TARGET: "x86" diff --git a/travis-build.sh b/travis-build.sh index 2c058146..55bd8404 100755 --- a/travis-build.sh +++ b/travis-build.sh @@ -49,6 +49,7 @@ 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 @@ -62,7 +63,11 @@ export CC_FOR_BUILD="$CC" ./bootstrap ./configure --enable-maintainer-mode \ ${DISTCHECK_CONFIGURE_FLAGS-} \ - # + || { + rc=$? + cat config.log + exit $rc +} j=-j`getconf _NPROCESSORS_ONLN 2> /dev/null` || j= diff --git a/travis-install.sh b/travis-install.sh index 3aaa7885..2fbd275b 100755 --- a/travis-install.sh +++ b/travis-install.sh @@ -1,21 +1,24 @@ #!/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 + $sudo apt-get -qq update updated=1 } - sudo apt-get -qq --no-install-suggests --no-install-recommends \ + $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 + $sudo make -C kernel headers_install INSTALL_HDR_PATH=/opt/kernel + $sudo rm -rf kernel KHEADERS_INC=/opt/kernel/include ;; *) @@ -25,17 +28,17 @@ esac case "$CC" in gcc) - apt_get_install gcc-multilib + apt_get_install $common_packages ;; gcc-*) - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - apt_get_install gcc-multilib "$CC"-multilib + $sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test + apt_get_install $common_packages "$CC"-multilib ;; - clang-*) - apt_get_install gcc-multilib "$CC" + clang*) + apt_get_install $common_packages "$CC" ;; musl-gcc) - apt_get_install gcc-multilib + apt_get_install $common_packages ca-certificates git clone --depth=1 https://github.com/strace/musl cd musl CC=gcc @@ -51,10 +54,10 @@ case "$CC" in esac ./configure --prefix=/opt/musl --exec-prefix=/usr ${build} make - sudo make install + $sudo make install cd - rm -rf musl - sudo ln -s \ + $sudo ln -s \ $KHEADERS_INC/asm* \ $KHEADERS_INC/linux \ $KHEADERS_INC/mtd \ -- 2.40.0