1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
language: cpp
sudo: required
osx_image:
- xcode9.2
os:
- linux
- osx
services:
- docker
env:
matrix:
- DISTRO=fedora DOCKERHUB=true
before_script:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
brew update &> /dev/null &&
rm /usr/local/include/c++ &&
brew install gcc@6 &&
export CC=gcc-6 &&
export CXX=g++-6 &&
export FC=gfortran-6;
else
mkdir ${HOME}/docker &&
cp -v docker/Dockerfile.${DISTRO} ${HOME}/docker/Dockerfile &&
cd ../../ &&
mv -v ${TRAVIS_REPO_SLUG} $HOME/docker &&
cp -r $HOME/.ccache ${HOME}/docker/ccache;
fi
script:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
mkdir build && cd build && cmake -DKIM_API_BUILD_MODELS_AND_DRIVERS=ON -DKIM_API_ENABLE_SANITIZE=ON -DKIM_API_ENABLE_COVERAGE=ON .. && make &&
make test && bash <(curl -s https://codecov.io/bash) -x gcov-6 &&
make install DESTDIR=$PWD && rm -rf ./usr/local/* && rmdir ./usr/local;
else
travis_retry docker build -t ${TRAVIS_REPO_SLUG}:${DISTRO}
--build-arg CC=${CC} --build-arg CXX=${CXX} --build-arg FC=${FC}
--build-arg CXXFLAGS="${CXXFLAGS}" --build-arg CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}"
--build-arg COVERAGE="${COVERAGE}"
--build-arg SANITIZE="${SANITIZE}"
--build-arg CI=${CI} --build-arg TRAVIS=${TRAVIS} --build-arg TRAVIS_OS_NAME=${DISTRO:-fedora}
--build-arg TRAVIS_BRANCH=${TRAVIS_BRANCH} --build-arg TRAVIS_JOB_NUMBER=${TRAVIS_JOB_NUMBER}
--build-arg TRAVIS_PULL_REQUEST=${TRAVIS_PULL_REQUEST} --build-arg TRAVIS_JOB_ID=${TRAVIS_JOB_ID}
--build-arg TRAVIS_TAG=${TRAVIS_TAG} --build-arg TRAVIS_REPO_SLUG=${TRAVIS_REPO_SLUG}
--build-arg TRAVIS_COMMIT=${TRAVIS_COMMIT}
${HOME}/docker/ &&
rm -rf $HOME/.ccache &&
CON=$(docker run -d ${TRAVIS_REPO_SLUG}:${DISTRO} /bin/bash) &&
docker cp ${CON}:/home/kim/.ccache ${HOME}/;
fi
after_success:
- if [[ ${DOCKERHUB} && ${DOCKER_USERNAME} && ${DOCKER_PASSWORD} && ${TRAVIS_BRANCH} == cmake && ${TRAVIS_PULL_REQUEST} == false && ${TRAVIS_OS_NAME} = "linux" ]]; then
docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD";
docker push "${TRAVIS_REPO_SLUG}:${DISTRO}";
fi
cache:
- ccache
|