mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-12-21 08:09:35 +08:00
6ebc19fccb
This block has no significance because these branches are stale and builds will not be triggered on these branches.
168 lines
5.7 KiB
YAML
168 lines
5.7 KiB
YAML
language: cpp
|
|
|
|
os:
|
|
- linux
|
|
- osx
|
|
|
|
dist: bionic
|
|
|
|
env:
|
|
matrix:
|
|
- libt_branch=RC_1_2 gui=true build_system=qmake
|
|
- libt_branch=RC_1_2 gui=false build_system=qmake
|
|
- libt_branch=RC_1_2 gui=true build_system=cmake
|
|
- libt_branch=RC_1_2 gui=false build_system=cmake
|
|
global:
|
|
- secure: "OI9CUjj4lTb0HwwIZU5PbECU3hLlAL6KC8KsbwohG8/O3j5fLcnmDsK4Ad9us5cC39sS11Jcd1kDP2qRcCuST/glVNhLkcjKkiQerOfd5nQ/qL4JYfz/1mfP5mdpz9jHKzpLUIG+TXkbSTjP6VVmsb5KPT+3pKEdRFZB+Pu9+J8="
|
|
- coverity_branch: coverity_scan
|
|
|
|
notifications:
|
|
email:
|
|
on_success: change
|
|
on_failure: change
|
|
|
|
cache:
|
|
ccache: true
|
|
directories:
|
|
- $HOME/travis/deb
|
|
- $HOME/travis/brew
|
|
|
|
addons:
|
|
coverity_scan:
|
|
project:
|
|
name: "qbittorrent/qBittorrent"
|
|
description: "Build submitted via Travis CI"
|
|
build_command_prepend: "./bootstrap.sh && ./configure $qmake_conf"
|
|
build_command: "make -j2"
|
|
branch_pattern: $coverity_branch
|
|
notification_email: sledgehammer999@qbittorrent.org
|
|
apt:
|
|
sources:
|
|
# sources list: https://github.com/travis-ci/apt-source-safelist/blob/master/ubuntu.json
|
|
- sourceline: 'ppa:qbittorrent-team/qbt-libtorrent-travisci'
|
|
- sourceline: 'deb https://apt.kitware.com/ubuntu/ bionic main'
|
|
key_url: 'https://apt.kitware.com/keys/kitware-archive-latest.asc'
|
|
packages:
|
|
# packages list: https://github.com/travis-ci/apt-package-safelist/blob/master/ubuntu-trusty
|
|
- [autoconf, automake, cmake, colormake]
|
|
- [libboost-dev, libboost-system-dev]
|
|
- libssl-dev
|
|
- [qtbase5-dev, libqt5svg5-dev, qttools5-dev]
|
|
- zlib1g-dev
|
|
|
|
before_install:
|
|
# only allow specific build for coverity scan, others will stop
|
|
- if [ "$TRAVIS_BRANCH" = "$coverity_branch" ] && ! [ "$TRAVIS_OS_NAME" = "linux" -a "$libt_branch" = "RC_1_2" -a "$gui" = "true" -a "$build_system" = "qmake" ]; then exit ; fi
|
|
|
|
- shopt -s expand_aliases
|
|
- alias make="colormake -j2" # Using nprocs/2 sometimes may fail (gcc is killed by system)
|
|
- qbt_path="$HOME/qbt_install"
|
|
- qmake_conf="$qmake_conf --prefix=$qbt_path"
|
|
- cmake_conf="$cmake_conf -DCMAKE_INSTALL_PREFIX=$qbt_path"
|
|
|
|
# options for specific branches
|
|
- |
|
|
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
|
# setup virtual display for after_success target
|
|
if [ "$gui" = "true" ]; then export "DISPLAY=:99.0" && /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16 ; fi ;
|
|
# CMake from Kitware is installed in /usr/bin
|
|
# TravisCI installs its own cmake to another location which ovverides other installations
|
|
# if they don't call the new binary directly
|
|
alias cmake="/usr/bin/cmake"
|
|
fi
|
|
- |
|
|
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
CXXFLAGS="$CXXFLAGS -Wno-unused-local-typedefs"
|
|
|
|
openssl_root_path="/usr/local/opt/openssl"
|
|
qmake_conf="$qmake_conf PKG_CONFIG_PATH=$openssl_root_path/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
cmake_conf="$cmake_conf -DOPENSSL_ROOT_DIR=$openssl_root_path"
|
|
fi
|
|
- |
|
|
if [ "$gui" = "false" ]; then
|
|
qmake_conf="$qmake_conf --disable-gui"
|
|
cmake_conf="$cmake_conf -DGUI=OFF"
|
|
fi
|
|
|
|
# print settings
|
|
- echo $libt_branch
|
|
- echo $gui
|
|
- echo $build_system
|
|
- echo $qmake_conf
|
|
- echo $cmake_conf
|
|
|
|
install:
|
|
- |
|
|
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
# dependencies
|
|
PATH="/usr/local/opt/ccache/libexec:$PATH"
|
|
|
|
brew update > /dev/null
|
|
brew upgrade cmake
|
|
brew install ccache colormake boost openssl qt zlib
|
|
brew link --force qt zlib
|
|
|
|
if [ "$build_system" = "cmake" ]; then
|
|
sudo ln -s /usr/local/opt/qt/mkspecs /usr/local/mkspecs
|
|
sudo ln -s /usr/local/opt/qt/plugins /usr/local/plugins
|
|
fi
|
|
fi
|
|
- |
|
|
if [ "$TRAVIS_BRANCH" != "$coverity_branch" ]; then
|
|
export use_ccache=true
|
|
ccache -M 512M
|
|
ccache -V && ccache --show-stats && ccache --zero-stats
|
|
fi
|
|
- |
|
|
if [ "$libt_branch" = "RC_1_2" ] && [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
|
# Will install latest 1.2.x daily build from the PPA
|
|
sudo apt-get -y install libtorrent-rasterbar-dev
|
|
fi
|
|
- |
|
|
if [ "$libt_branch" = "RC_1_2" ] && [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
# building libtorrent manually should be faster than using the official bottle
|
|
# because the bottle will also pull in a lot of updated dependencies and prolong the overall time
|
|
pushd "$HOME"
|
|
git clone --single-branch --branch RC_1_2 https://github.com/arvidn/libtorrent.git
|
|
cd libtorrent
|
|
git checkout tags/v1.2.10
|
|
|
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=14 -Ddeprecated-functions=OFF -DOPENSSL_ROOT_DIR="$openssl_root_path" ./
|
|
make
|
|
sudo make install
|
|
popd
|
|
fi
|
|
|
|
script:
|
|
- if [ "$TRAVIS_BRANCH" = "$coverity_branch" ]; then exit ; fi # skip usual build when running coverity scan
|
|
- |
|
|
cd "$TRAVIS_BUILD_DIR"
|
|
if [ "$build_system" = "qmake" ]; then
|
|
# scan only as lupdate is prone to hang
|
|
lupdate -extensions c,cpp,h,hpp,ui ./
|
|
./bootstrap.sh
|
|
./configure $qmake_conf CXXFLAGS="$CXXFLAGS"
|
|
else
|
|
mkdir build && cd build
|
|
cmake $cmake_conf ../
|
|
fi
|
|
- make
|
|
- make install
|
|
|
|
after_success:
|
|
- if [ "$gui" = "true" ]; then qbt_exe="qbittorrent" ; else qbt_exe="qbittorrent-nox" ; fi
|
|
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then cd "$qbt_path/bin" ; fi
|
|
- |
|
|
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
if [ "$build_system" = "qmake" ]; then
|
|
macdeployqt "$TRAVIS_BUILD_DIR/src/$qbt_exe.app"
|
|
cd "$TRAVIS_BUILD_DIR/src/$qbt_exe.app/Contents/MacOS"
|
|
else
|
|
cd "$qbt_path/$qbt_exe.app/Contents/MacOS"
|
|
fi
|
|
fi
|
|
- ./$qbt_exe --version
|
|
|
|
after_script:
|
|
- if [ "$use_ccache" = true ]; then ccache --show-stats ; fi
|