I'm having difficulty getting my Travis CI jobs to run in parallel. I read in the official documentation that I can use the build matrix to parallelize my builds across multiple virtual machines; however, even with the following .travis.yml config, the jobs still run sequentially.
language: cpp
matrix:
include:
# Linux + GCC jobs
- name: 'Ubuntu Xenial with g++-5'
os: linux
dist: xenial
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-5
env:
- MATRIX_EVAL='CC=gcc-5 && CXX=g++-5'
- name: 'Ubuntu Xenial with g++-6'
os: linux
dist: xenial
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
env:
- MATRIX_EVAL='CC=gcc-6 && CXX=g++-6'
- name: 'Ubuntu Xenial with g++-7'
os: linux
dist: xenial
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
env:
- MATRIX_EVAL='CC=gcc-7 && CXX=g++-7'
...
# MacOS + GCC jobs
- name: 'MacOS (Xcode 10.0) with g++-5'
os: osx
osx_image: xcode10
env:
- MATRIX_EVAL='brew install gcc@5 && CC=gcc-5 && CXX=g++-5'
- name: 'MacOS (Xcode 10.0) with g++-6'
os: osx
osx_image: xcode10
env:
- MATRIX_EVAL='brew install gcc@6 && CC=gcc-6 && CXX=g++-6'
- name: 'MacOS (Xcode 10.0) with g++-7'
os: osx
osx_image: xcode10
env:
- MATRIX_EVAL='brew install gcc@7 && CC=gcc-7 && CXX=g++-7'
...
before_install:
- eval "${MATRIX_EVAL}"
script:
- ./build.sh
I don't know if it's relevant, but here are the contents of build.sh.
#!/bin/bash
set -e
mkdir build -p
pushd build >/dev/null
cmake .. -DCMAKE_BUILD_TYPE=${1:-Release}
cmake --build . --target all
popd >/dev/null
Could someone please point out to me what I'm doing wrong?