language: cpp os: linux dist: bionic addons: apt: update: true packages: - cmake - g++-multilib sources: - sourceline: 'deb https://apt.kitware.com/ubuntu/ bionic main' key_url: 'https://apt.kitware.com/keys/kitware-archive-latest.asc' env: global: - travis_boost_version=1.71.0 jobs: - configuration=Debug platform=x86 - configuration=Release platform=x86 - configuration=Debug platform=x64 - configuration=Release platform=x64 before_script: - >- ./cmake/boost/build/ci/travis.py --link static -- --with-filesystem --with-program_options --with-regex --with-test script: - >- ./cmake/cmake/build/ci/travis.py --install "$HOME/install" -- -D "CMAKE_TOOLCHAIN_FILE=cmake/cmake/toolchains/gcc-$platform.cmake" -D "BOOST_ROOT=$HOME/boost_1_71_0" -D "BOOST_LIBRARYDIR=$HOME/boost_1_71_0/stage/$platform/$configuration/lib" -D ENABLE_TESTS=ON - "$HOME/install/bin/math-server-unit-tests" - "$HOME/install/bin/math-server-benchmarks" jobs: fast_finish: true include: - name: Run clang-format if: branch = master addons: apt: update: true packages: - clang-format-9 sources: - sourceline: 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main' key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key' # Clear before_script: before_script: - true script: - ./cmake/tools/clang-format.py --clang-format clang-format-9 - name: Build and publish multi-arch images language: minimal addons: apt: update: true # Newer docker for BuildKit/buildx support: sources: - key_url: 'https://download.docker.com/linux/ubuntu/gpg' sourceline: 'deb https://download.docker.com/linux/ubuntu "$(lsb_release -cs)" stable' packages: - docker-ce install: # GCR & BuildKit don't work together, e.g.: # https://github.com/moby/buildkit/issues/606 - echo '{}' | sudo tee /etc/docker/daemon.json - sudo systemctl restart docker # Clear before_script: before_script: - true script: |- if [ "$TRAVIS_BRANCH" = master ]; then make login && make builder/create && make push else make builder/create && make buildx fi - name: Build native images using Compose language: minimal # Don't install the unnecessary dependencies: addons: apt: update: false services: - docker # Clear before_script: before_script: - true script: make compose-build - name: Build native images using Docker language: minimal # Don't install the unnecessary dependencies: addons: apt: update: false services: - docker # Clear before_script: before_script: - true script: make docker-build