How to run Travis CI jobs in parallel?

Viewed 223

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?

0 Answers
Related