Coverage codecov (#11494)

* travis: just merge linux/meson build with coverage one

* update travis.yml and extract-var

* change a bit call to codecov.sh

* switch to ubuntu:bionic

* fix docker.travis

* fix LD_LIBRARY_PATH

* Dockerfile.travis: add pkg-config

* Dockerfile.travis: install npm

* dockerfile.travis: somehow pkg-config was removed

* travis: switch back to latest

* travis: do not hardcode machine

* move COVERAGE=1 after INSTALL_SYSTEM
This commit is contained in:
Riccardo Schirone 2018-09-12 12:24:19 +02:00 committed by Anton Kochkov
parent 1ee0b58709
commit 08f8e48ca1
4 changed files with 35 additions and 48 deletions

View File

@ -17,15 +17,13 @@ matrix:
- os: linux - os: linux
env: COMPILER_NAME=clang CXX=clang++ CC=clang env: COMPILER_NAME=clang CXX=clang++ CC=clang
- os: linux - os: linux
env: COMPILER_NAME=gcc CXX=g++ CC=gcc INSTALL_SYSTEM=meson env: COMPILER_NAME=gcc CXX=g++ CC=gcc INSTALL_SYSTEM=meson COVERAGE=1
- if: head_branch =~ ^fedora-* OR tag =~ ^release-* OR tag =~ ^fedora-* - if: head_branch =~ ^fedora-* OR tag =~ ^release-* OR tag =~ ^fedora-*
os: linux os: linux
env: COMPILER_NAME=gcc CXX=g++ CC=gcc INSTALL_SYSTEM=meson R2_SYS_CAPSTONE=true R2_SYS_MAGIC=true R2_SYS_ZIP=true R2_SYS_LZ4=true R2_SYS_ZLIB=true env: COMPILER_NAME=gcc CXX=g++ CC=gcc INSTALL_SYSTEM=meson R2_SYS_CAPSTONE=true R2_SYS_MAGIC=true R2_SYS_ZIP=true R2_SYS_LZ4=true R2_SYS_ZLIB=true
- if: head_branch =~ ^asan-* OR tag =~ ^release-* OR type = push - if: head_branch =~ ^asan-* OR tag =~ ^release-* OR type = push
os: linux os: linux
env: COMPILER_NAME=clang CXX=clang++ CC=clang CFLAGS="-O0 -ggdb -fsanitize=address -fno-omit-frame-pointer" LDFLAGS="-O0 -ggdb -fsanitize=address -fno-omit-frame-pointer" ASAN_OPTIONS=detect_odr_violation=0 LSAN_OPTIONS=detect_leaks=0 env: COMPILER_NAME=clang CXX=clang++ CC=clang CFLAGS="-O0 -ggdb -fsanitize=address -fno-omit-frame-pointer" LDFLAGS="-O0 -ggdb -fsanitize=address -fno-omit-frame-pointer" ASAN_OPTIONS=detect_odr_violation=0 LSAN_OPTIONS=detect_leaks=0
- os: linux
env: COMPILER_NAME=gcc CXX=g++ CC=gcc COVERAGE=1 INSTALL_SYSTEM=meson
- os: osx - os: osx
env: COMPILER_NAME=clang CXX=clang++ CC=clang env: COMPILER_NAME=clang CXX=clang++ CC=clang
allow_failures: allow_failures:
@ -33,13 +31,11 @@ matrix:
env: COMPILER_NAME=gcc CXX=g++ CC=gcc INSTALL_SYSTEM=meson R2_SYS_CAPSTONE=true R2_SYS_MAGIC=true R2_SYS_ZIP=true R2_SYS_LZ4=true R2_SYS_ZLIB=true env: COMPILER_NAME=gcc CXX=g++ CC=gcc INSTALL_SYSTEM=meson R2_SYS_CAPSTONE=true R2_SYS_MAGIC=true R2_SYS_ZIP=true R2_SYS_LZ4=true R2_SYS_ZLIB=true
- os: linux - os: linux
env: COMPILER_NAME=clang CXX=clang++ CC=clang CFLAGS="-O0 -ggdb -fsanitize=address -fno-omit-frame-pointer" LDFLAGS="-O0 -ggdb -fsanitize=address -fno-omit-frame-pointer" ASAN_OPTIONS=detect_odr_violation=0 LSAN_OPTIONS=detect_leaks=0 env: COMPILER_NAME=clang CXX=clang++ CC=clang CFLAGS="-O0 -ggdb -fsanitize=address -fno-omit-frame-pointer" LDFLAGS="-O0 -ggdb -fsanitize=address -fno-omit-frame-pointer" ASAN_OPTIONS=detect_odr_violation=0 LSAN_OPTIONS=detect_leaks=0
- os: linux
env: COMPILER_NAME=gcc CXX=g++ CC=gcc COVERAGE=1 INSTALL_SYSTEM=meson
cache: cache:
- ccache - ccache
before_install: before_install:
- if [ "$TRAVIS_OS_NAME" != "osx" ]; then docker pull radareorg/r2-travis || docker build -t radareorg/r2-travis:latest -f Dockerfile.travis . ; else rm -rf .nvm && git clone https://github.com/creationix/nvm.git .nvm && (cd .nvm && git checkout `git describe --abbrev=0 --tags`) && . .nvm/nvm.sh && nvm install 8.11.3; fi - if [ "$TRAVIS_OS_NAME" != "osx" ]; then docker pull radareorg/r2-travis:latest || docker build -t radareorg/r2-travis:latest -f Dockerfile.travis . ; else rm -rf .nvm && git clone https://github.com/creationix/nvm.git .nvm && (cd .nvm && git checkout `git describe --abbrev=0 --tags`) && . .nvm/nvm.sh && nvm install 8.11.3; fi
script: script:
- export PR_NAME=$(echo $TRAVIS_PULL_REQUEST_SLUG | cut -d'/' -f1) - export PR_NAME=$(echo $TRAVIS_PULL_REQUEST_SLUG | cut -d'/' -f1)
@ -50,8 +46,8 @@ script:
- export R2R_BRANCH=$([ -n "${TRAVIS_PULL_REQUEST_BRANCH}" ] && echo "${TRAVIS_PULL_REQUEST_BRANCH}" || echo "${R2R_DEFAULT_BRANCH}") - export R2R_BRANCH=$([ -n "${TRAVIS_PULL_REQUEST_BRANCH}" ] && echo "${TRAVIS_PULL_REQUEST_BRANCH}" || echo "${R2R_DEFAULT_BRANCH}")
- if [ "${R2R_BRANCH}" = master ]; then USER_NAME=radare; fi - if [ "${R2R_BRANCH}" = master ]; then USER_NAME=radare; fi
- export R2R_REPO=$(doc/repo PR_REGRESSIONS | sed "s/__USER__/${USER_NAME}/g") - export R2R_REPO=$(doc/repo PR_REGRESSIONS | sed "s/__USER__/${USER_NAME}/g")
- if [ "$TRAVIS_OS_NAME" != "osx" ]; then bash ./travis-extract-var.sh > ${TRAVIS_BUILD_DIR}/docker-env.sh ; cat ${TRAVIS_BUILD_DIR}/docker-env.sh ; ci_env=`bash <(curl -s https://codecov.io/env)` ; echo "${ci_env}" ; fi - if [ "$TRAVIS_OS_NAME" != "osx" ]; then bash ./travis-extract-var.sh > ${TRAVIS_BUILD_DIR}/docker-env.sh ; cat ${TRAVIS_BUILD_DIR}/docker-env.sh ; fi
- if [ "$TRAVIS_OS_NAME" != "osx" ]; then docker run ${ci_env} -v /home/travis/.ccache:/root/.ccache -v ${TRAVIS_BUILD_DIR}:${TRAVIS_BUILD_DIR} --entrypoint "/bin/bash" radareorg/r2-travis:latest -c ". /src/.nvm/nvm.sh; cd ${TRAVIS_BUILD_DIR}; . docker-env.sh; bash travis-script"; else bash travis-script; fi - if [ "$TRAVIS_OS_NAME" != "osx" ]; then docker run -v /home/travis/.ccache:/root/.ccache -v ${TRAVIS_BUILD_DIR}:${TRAVIS_BUILD_DIR} --entrypoint "/bin/bash" radareorg/r2-travis:latest -c ". /src/.nvm/nvm.sh; cd ${TRAVIS_BUILD_DIR}; . docker-env.sh; bash travis-script"; else bash travis-script; fi
notifications: notifications:
irc: "chat.freenode.net#radare" irc: "chat.freenode.net#radare"

View File

@ -1,45 +1,33 @@
FROM fedora:28 FROM ubuntu:bionic
MAINTAINER tbd MAINTAINER tbd
WORKDIR /src WORKDIR /src
RUN dnf install -y \ RUN apt-get update
gcc \ RUN apt-get install -y \
gcc-c++ \ build-essential \
glibc.i686 \ gcc-multilib \
clang \ llvm \
llvm \ clang \
make \ bison \
patch \ git \
findutils \ curl \
which \ cabextract \
bison \ libasan5 \
curl \ jq \
git \ libncurses5 \
binutils \ libcapstone3 \
cabextract \ libzip4 \
libasan \ liblz4-1 \
libcurl-devel \ gnupg2 \
elfutils-libelf-devel \ python-pip \
elfutils-libelf-devel-static \ python3-pip \
libdwarf-devel \ pkg-config \
libdwarf-static \ liblzma5 \
jq \ npm
pkgconf-pkg-config \
glib2 \
glib2-devel \
ncurses-devel \
capstone-devel \
libzip-devel \
file-devel \
lz4-devel \
gnupg2 \
python2-pip \
meson \
ninja-build \
xz
RUN rm -rf /src/.nvm && git clone https://github.com/creationix/nvm.git /src/.nvm && (cd /src/.nvm && git checkout `git describe --abbrev=0 --tags`) && . /src/.nvm/nvm.sh && nvm install 8.11.3 RUN pip3 install meson
RUN pip3 install ninja
CMD [] CMD []

View File

@ -10,7 +10,7 @@ print_var()
} }
env -0 | while IFS='=' read -r -d '' n v; do env -0 | while IFS='=' read -r -d '' n v; do
if [[ "${n}" =~ ^TRAVIS_* || "${n}" =~ ^R2* || "${n}" =~ SAN_* ]]; then if [[ "${n}" =~ ^TRAVIS* || "${n}" =~ ^R2* || "${n}" =~ SAN_* || "%{n}" =~ CODECOV_* || "%{n}" =~ VCS_* || "%{n}" =~ CI_* ]]; then
print_var "${n}" "${v}" print_var "${n}" "${v}"
fi fi
done done
@ -21,6 +21,9 @@ print_var CXX "${CXX}"
print_var CFLAGS "${CFLAGS}" print_var CFLAGS "${CFLAGS}"
print_var LDFLAGS "${LDFLAGS}" print_var LDFLAGS "${LDFLAGS}"
print_var CXXFLAGS "${CXXFLAGS}" print_var CXXFLAGS "${CXXFLAGS}"
print_var TRAVIS "${TRAVIS}"
print_var INSTALL_SYSTEM "${INSTALL_SYSTEM}" print_var INSTALL_SYSTEM "${INSTALL_SYSTEM}"
print_var MESON_OPTIONS "${MESON_OPTIONS}" print_var MESON_OPTIONS "${MESON_OPTIONS}"
print_var COVERAGE "${COVERAGE}" print_var COVERAGE "${COVERAGE}"
print_var SHIPPABLE "${SHIPPABLE}"
print_var CI "${CI}"

View File

@ -2,7 +2,7 @@
set -x set -x
export PATH=${TRAVIS_BUILD_DIR}/install/bin:${PATH} export PATH=${TRAVIS_BUILD_DIR}/install/bin:${PATH}
export LD_LIBRARY_PATH=${TRAVIS_BUILD_DIR}/install/lib:${TRAVIS_BUILD_DIR}/install/lib64:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH=${TRAVIS_BUILD_DIR}/install/lib/$(uname -m)-linux-gnu:${TRAVIS_BUILD_DIR}/install/lib:${TRAVIS_BUILD_DIR}/install/lib64:${LD_LIBRARY_PATH}
git clone --depth 1 --branch "${R2R_BRANCH}" "${R2R_REPO}" || true # If cloning fails that's not an error: we simply fallback to master. git clone --depth 1 --branch "${R2R_BRANCH}" "${R2R_REPO}" || true # If cloning fails that's not an error: we simply fallback to master.
ls radare2-regressions >/dev/null 2>&1 || git clone --depth 1 --branch "${R2R_DEFAULT_BRANCH}" "${R2R_DEFAULT_REPO}" ls radare2-regressions >/dev/null 2>&1 || git clone --depth 1 --branch "${R2R_DEFAULT_BRANCH}" "${R2R_DEFAULT_REPO}"
@ -54,5 +54,5 @@ if [ "${COVERAGE}" == "1" ] ; then
cd ../build cd ../build
curl -s https://codecov.io/bash > ./codecov.sh curl -s https://codecov.io/bash > ./codecov.sh
chmod +x ./codecov.sh chmod +x ./codecov.sh
./codecov.sh -v 2>/dev/null ./codecov.sh -K -v 2>/dev/null
fi fi