+version: ~> 1.0
+
language: c
+cache:
+ directories:
+ - $HOME/cachedir
+ - $HOME/.ccache
+dist: bionic
-sudo: required
-dist: trusty
+osx_image: xcode11.3
-os:
- - linux
- - osx
+addons:
+ homebrew:
+ packages:
+ - gettext
+ - check
+ - bullet
+ - dbus
+ - fontconfig
+ - freetype
+ - fribidi
+ - gst-plugins-good
+ - gstreamer
+ - luajit
+ - openssl
+ - webp
+ - libsndfile
+ - glib
+ - libspectre
+ - libraw
+ - librsvg
+ - poppler
+ - lz4
+ - pulseaudio
+ - ccache
+ - ninja
+ - python3
+ - libffi
+ update: true
env:
global:
- - MAKEFLAGS="-j5"
- EIO_MONITOR_POLL=1
- matrix:
- -
- - DISTRO=Ubuntu1804
- - DISTRO=Fedora28 CI_BUILD_TYPE=wayland
- - DISTRO=Fedora28 CI_BUILD_TYPE=misc
- - DISTRO=Fedora28 CI_BUILD_TYPE=misc-disabled
- - DISTRO=Fedora28 CI_BUILD_TYPE=release-ready
- - DISTRO=Debian91
- - DISTRO=Archlinux
+ - CC="ccache gcc"
+ - CXX="ccache g++"
-services:
- - docker
-
-matrix:
- fast_finish: true
- exclude:
- - os: osx
- env:
- DISTRO=Ubuntu1804
- - os: osx
- env:
- DISTRO=Fedora28
- CI_BUILD_TYPE=wayland
- - os: osx
- env:
- DISTRO=Fedora28
- CI_BUILD_TYPE=misc
- - os: osx
- env:
- DISTRO=Fedora28
- CI_BUILD_TYPE=misc-disabled
- - os: osx
- env:
- DISTRO=Fedora28
- CI_BUILD_TYPE=release-ready
+jobs:
+ include:
- os: osx
- env:
- DISTRO=Debian91
- - os: osx
- env:
- DISTRO=Archlinux
- os: linux
- env:
- allow_failures:
+ env: DISTRO=Fedora32-mingw CI_BUILD_TYPE=mingw
+ - os: linux
+ env: DISTRO=Fedora32 CI_BUILD_TYPE=options-enabled
+ - os: linux
+ env: DISTRO=Fedora32 CI_BUILD_TYPE=options-disabled
+ - os: linux
+ env: DISTRO=Fedora32 CI_BUILD_TYPE=wayland
+ - os: linux
+ env: DISTRO=Fedora32 CI_BUILD_TYPE=default
+ - os: linux
+ if: type = cron
+ env: DISTRO=Fedora32 CI_BUILD_TYPE=release-ready
+ - os: linux
+ if: type = cron
+ env: DISTRO=Ubuntu2004
+ - os: linux
+ if: type = cron
+ env: DISTRO=Ubuntu1910
+ - os: linux
+ if: type = cron
+ env: DISTRO=Debian103
- os: linux
- env: DISTRO=Fedora28 CI_BUILD_TYPE=release-ready
+ if: type = cron
+ env: DISTRO=Fedora31 CI_BUILD_TYPE=coverity
+ - os: linux
+ if: type = cron
+ env: DISTRO=Fedora32 CI_BUILD_TYPE=asan
+ - os: linux
+ if: type = cron
+ env: DISTRO=Fedora32-exactness CI_BUILD_TYPE=exactness
+ - os: linux
+ if: type = cron
+ env: CI_BUILD_TYPE=codecov
+ - os: linux
+ if: type = cron
+ arch: arm64
+ env: CI_BUILD_TYPE=default
+ - os: linux
+ if: type = cron
+ arch: ppc64le
+ env: CI_BUILD_TYPE=no-bindings
+ - os: linux
+ if: type = cron
+ arch: s390x
+ env: CI_BUILD_TYPE=no-bindings
+
+services:
+ - docker
before_install:
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then .ci/ci-osx-deps.sh ; fi
+ - export -f travis_nanoseconds
+ - export -f travis_fold
+ - export -f travis_time_start
+ - export -f travis_time_finish
+ - |
+ if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
+ rm -rf $HOME/Library/Caches/Homebrew
+ rm -rf $HOME/cachedir/Homebrew/Homebrew
+ mv $HOME/cachedir/Homebrew $HOME/Library/Caches/Homebrew
+ pip3 install meson
+ fi
before_script:
- |
if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then
docker pull stefanschmidt1/ci-support-files:$DISTRO
+ docker version
+ docker run --cap-add SYS_PTRACE --cidfile $HOME/cid -t -d -v `pwd`:/src -v $HOME/.ccache:/root/.ccache -w /src stefanschmidt1/ci-support-files:$DISTRO bash
fi
-
-script:
- |
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then
- docker run -v `pwd`:/src -w /src stefanschmidt1/ci-support-files:$DISTRO /src/.ci/ci-linux-build.sh $CI_BUILD_TYPE
+ if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" == "" ]]; then
+ .ci/ubuntu-bionic-install-deps.sh
fi
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then .ci/ci-osx-build.sh ; fi
+ - .ci/ci-ccache-stats.sh
-after_success:
+script:
+ - .ci/ci-configure.sh "$CI_BUILD_TYPE"
+ - .ci/ci-setup-ccache.sh "$CI_BUILD_TYPE"
+ - .ci/ci-make.sh "$CI_BUILD_TYPE"
+ - .ci/ci-make-install.sh "$CI_BUILD_TYPE"
+ - .ci/ci-make-benchmark.sh "$CI_BUILD_TYPE"
+ - .ci/ci-make-check.sh "$CI_BUILD_TYPE"
+ - .ci/ci-exactness.sh "$CI_BUILD_TYPE"
+ - .ci/ci-make-distcheck.sh "$CI_BUILD_TYPE"
+ - .ci/ci-build-test.sh "$CI_BUILD_TYPE"
+
+before_cache:
+ - .ci/ci-ccache-stats.sh
- |
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then
- docker login -u stefanschmidt1 -p "$DOCKER_PASSWORD"
- docker tag stefanschmidt1/ci-support-files:$DISTRO stefanschmidt1/ci-support-files:$DISTRO-$TRAVIS_BUILD_NUMBER
- docker push stefanschmidt1/ci-support-files:$DISTRO
- docker push stefanschmidt1/ci-support-files:$DISTRO-$TRAVIS_BUILD_NUMBER
- fi
+ mkdir -p $HOME/cachedir
+ if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
+ sudo chown travis:travis $HOME/.ccache
+ else
+ mv $HOME/Library/Caches/Homebrew $HOME/cachedir/Homebrew
+ fi
notifications:
irc:
on_success: change
on_failure: always
template:
- - "TravisCI build %{build_number} in branch %{branch}: %{result} - %{message}"
+ - "TravisCI build %{build_number} in branch %{branch}: %{result} - %{message} (%{elapsed_time})"
- "Commit: %{commit_subject} (%{commit}) from %{author}"
- "Change view : %{compare_url}"
- "Build details : %{build_url}"