+version: ~> 1.0
+
language: c
cache:
directories:
- $HOME/cachedir
- $HOME/.ccache
- - $HOME/autom4te.cache
-sudo: required
-dist: trusty
+dist: bionic
+
+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
- CC="ccache gcc"
- CXX="ccache g++"
- 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
-
-services:
- - docker
-matrix:
- fast_finish: true
- exclude:
- - os: osx
- env:
- DISTRO=Ubuntu1804
+jobs:
+ include:
- 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
- - 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
+ 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
- env: DISTRO=Fedora28 CI_BUILD_TYPE=release-ready
+ 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
- |
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
- docker version
- docker run --cidfile $HOME/cid -t -d -v `pwd`:/src -v $HOME/.ccache:/root/.ccache -w /src stefanschmidt1/ci-support-files:$DISTRO bash
- cp $HOME/cachedir/config.cache . || true
+ if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" == "" ]]; then
+ .ci/ubuntu-bionic-install-deps.sh
fi
-
- .ci/ci-ccache-stats.sh
- - |
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
- cp $HOME/cachedir/config.cache . || true
- fi
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-checkbuild.sh "$CI_BUILD_TYPE"
- - .ci/ci-make-examples.sh "$CI_BUILD_TYPE"
- - |
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$CI_BUILD_TYPE" == "" ]]; then
- .ci/ci-make-benchmark.sh "$CI_BUILD_TYPE"
- fi
- .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"
- - |
- if [[ "$DISTRO" == "" ]] && [[ "$TRAVIS_OS_NAME" != "linux" ]] ; then
- .ci/build-efl-app.sh
- elif [[ "$CI_BUILD_TYPE" != "release-ready" ]] ; then
- docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) .ci/build-efl-app.sh
- fi
+ - .ci/ci-build-test.sh "$CI_BUILD_TYPE"
+
before_cache:
- .ci/ci-ccache-stats.sh
- |
mkdir -p $HOME/cachedir
if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
sudo chown travis:travis $HOME/.ccache
- mkdir -p $HOME/cachedir/
- sudo cp config.cache $HOME/cachedir/
- sudo chown travis:travis $HOME/cachedir/config.cache
- sudo chown travis:travis $HOME/autom4te.cache
else
- cp config.cache $HOME/cachedir
+ mv $HOME/Library/Caches/Homebrew $HOME/cachedir/Homebrew
fi
-after_success:
- - |
- 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
-
notifications:
irc:
channels:
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}"