Can someone enlighten me as to why the following build matrix is not producing any macOS builds (but still attempting to build on Linux)?
language: cpp
env:
LINUX_DEPS="cmake libopencv-dev libopencv-contrib-dev libopencv-imgcodecs-dev libprotobuf-dev protobuf-compiler qtbase5-dev qtdeclarative5-dev qtmultimedia5-dev qtquickcontrols2-5-dev"
MACOS_DEPS="cmake opencv protobuf qt"
matrix:
include:
# ubuntu lacks dnn support in OpenCV
#- os: linux
# dist: bionic
# compiler: clang
- os: osx
compiler: clang
before_install:
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get update -y; fi
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get install -y $LINUX_DEPS; fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install $MACOS_DEPS; fi
jobs:
include:
- stage: lint
script:
- make format
- stage: build
script:
- make build
stages:
#- lint
- build
A misbehaving build with that config can be found at: https://travis-ci.org/raymanfx/seraphim/builds/564598607.
I have been following the docs at https://docs.travis-ci.com/user/multi-os/#example-multi-os-build-matrix, but the approach does not appear to work out for me.
You have both matrix
and jobs
, which are aliases of each other, and only the latter is effective.
Thank you very much, I was not aware of that.
Two more questions: I modified my config like this:
language: cpp
env:
LINUX_DEPS=“cmake libopencv-dev libopencv-contrib-dev libopencv-imgcodecs-dev libprotobuf-dev protobuf-compiler qtbase5-dev qtdeclarative5-dev qtmultimedia5-dev qtquickcontrols2-5-dev”
MACOS_DEPS=“cmake opencv protobuf qt”
matrix:
include:
# ubuntu lacks dnn support in OpenCV
#- os: linux
# dist: bionic
# compiler: clang
# stage: lint
# script:
# - make format
# stage: build
# script:
# - make build
- os: osx
compiler: clang
stage: lint
script:
- make format
stage: build
script:
- make build
before_install:
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get update -y; fi
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get install -y $LINUX_DEPS; fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install $MACOS_DEPS; fi
stages:
#- lint
- build
Is there a way to make the two stages expand to every matrix entry so I don’t have to specify them for each os/dist?
Furthermore, a job with that config just failed: https://travis-ci.org/raymanfx/seraphim/jobs/564653333. Any idea why the “brew install” command returned exit code 1? I can’t seem to spot the point where the error occured.