AMD64
Shell
Git
Kicer86/photobroom:.travis.yml@8f137d1
language: cpp
dist: focal
osx_image: xcode12.2
branches:
only:
- master
- travis_test
- v1.4-branch
addons:
apt:
packages:
- g++-10
- python3
- lcov
- libdlib-dev
- libblas-dev
- liblapack-dev
- nasm
- googletest
- libexiv2-dev
sources:
homebrew:
packages:
- qt5
- exiv2
- dlib
update: true
notifications:
on_failure: never
on_success: never
os:
- linux
- osx
compiler:
- gcc
# - clang disabled due to https://bugs.llvm.org/show_bug.cgi?id=33222 (https://stackoverflow.com/questions/46859053/stdvisit-for-variant-fails-to-compile-under-clang-5)
env:
- DEBUG=0
matrix:
exclude:
- os: osx
compiler: gcc
include:
- os: linux
compiler: gcc
env: DEBUG=1
allow_failures:
- os: osx
cache:
- ccache: true
- directories:
- $HOME/tools # vcpkg
install:
# setup tools for particular system
- if [ $TRAVIS_OS_NAME == 'osx' ]; then
brew upgrade pyenv;
eval "$(pyenv init -)";
brew install ccache;
export PATH="/usr/local/opt/ccache/libexec:$PATH";
export PATH="/usr/local/opt/qt/bin:$PATH";
else
export CC=gcc-10;
export CXX=g++-10;
echo "max_size = 0.5" > /home/travis/.ccache/ccache.conf;
echo "compression = true" >> /home/travis/.ccache/ccache.conf;
sudo add-apt-repository -y ppa:beineri/opt-qt-5.15.0-focal;
sudo apt install qt515base qt515svg qt515quickcontrols2 libgl-dev lcov;
source /opt/qt515/bin/qt515-env.sh;
mkdir $HOME/googletest;
pushd $HOME/googletest;
cmake /usr/src/googletest -DCMAKE_INSTALL_PREFIX=$HOME/googletest_installation;
make install;
popd;
fi
- if [ ! -d $HOME/tools/vcpkg ]; then
git clone https://github.com/microsoft/vcpkg.git $HOME/tools/vcpkg;
pushd $HOME/tools/vcpkg;
sh ./bootstrap-vcpkg.sh;
popd;
fi
- $HOME/tools/vcpkg/vcpkg --overlay-ports=./ci/vcpkg --overlay-ports=./ci/vcpkg-system-native install exiv2 openlibrary magic-enum
before_script:
- if [ $DEBUG -eq 1 ]; then
EXTRA_CMAKE_OPTIONS="-DENABLE_CODE_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug";
fi
# photo broom
- mkdir build && cd build
- ccache -z
script:
- cmake -DCMAKE_INSTALL_PREFIX=$TRAVIS_BUILD_DIR/usr
-DBUILD_UPDATER=ON
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_C_COMPILER_LAUNCHER=ccache
-DGTest_DIR=$HOME/googletest_installation/lib/cmake/GTest
-DCMAKE_TOOLCHAIN_FILE=$HOME/tools/vcpkg/scripts/buildsystems/vcpkg.cmake
${EXTRA_CMAKE_OPTIONS}
..
- make
after_script:
- ccache -s
- if [ $TRAVIS_OS_NAME != 'osx' ]; then
xvfb-run -e /dev/stdout ctest -V -L UnitTest;
fi
after_success:
- if [ $DEBUG -eq 1 ]; then
cd ${TRAVIS_BUILD_DIR}/build;
xvfb-run -e /dev/stdout make run_unit_tests_code_coverage;
lcov --directory . --capture --output-file coverage.info;
lcov --remove coverage.info '/usr/*' --output-file coverage.info;
lcov --list coverage.info;
bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports";
fi
Build Config
{
"dist": "trusty",
"sudo": "required",
"addons": {
"artifacts": {
"paths": [
"./build/shellcheck-${VERSION}.tar.bz2"
],
"target_paths": [
"/binaries/$OS_NAME/$LSB_RELEASE/$ARCH"
]
}
},
"script": [
"export LSB_RELEASE=${LSB_RELEASE:-$(lsb_release -rs || echo ${$(sw_vers -productVersion)%*.*})}",
"export OS_NAME=${OS_NAME:-$(lsb_release -is | tr \"A-Z\" \"a-z\" || echo \"osx\")}",
"export ARCH=${ARCH:-$(uname -m)}",
"make build"
],
"language": "bash"
}