language: d
sudo: false

script: ./ci_script

matrix:
    include:
        - d: dmd-2.081.1
          env: DUB_SELECT=ut-0.7.46
        - d: dmd-2.080.1
        - d: dmd-2.079.1
        - d: dmd-2.078.2
        - d: dmd-2.077.1
        - d: dmd-2.076.1
        - d: dmd-2.075.1
        - d: dmd-2.074.1
        - d: dmd-2.073.1
        - d: dmd-2.073.0
        - d: dmd-2.072.2
        - d: dmd-2.071.2
        - d: dmd-2.071.0
        - d: dmd-2.070.2
        - d: dmd-2.070.1
        - d: dmd-2.070.0
        - d: dmd-2.069.2
        - d: dmd-2.069.0
        - d: ldc-1.10.0
        - d: ldc-1.9.0
        - d: ldc-1.8.0
        - d: ldc-1.7.0
        - d: ldc-1.6.0
        - d: ldc-1.5.0
        - d: ldc-1.4.0
        - d: ldc-1.3.0
        - d: ldc-1.2.0
        - d: ldc-1.1.1
        - d: ldc-1.0.0
        - d: dmd
          env: DUB_SELECT=ut-0.7.46
        - d: ldc
          env: DUB_SELECT=ut-0.7.46
        # Latest GDC (v4.8.5) uses a too-old DMDFE (2.068), so
        # it won't work on current SDLang-D. So it's set as
        # an allowed failure for travis.
        - d: gdc-4.8.5

        # on Mac just test latest & oldest supported dmd and ldc
        - d: dmd-2.081.1
          env: DUB_SELECT=ut-0.7.46
          os: osx
          osx_image: xcode9 # use OSX 10.13

        - d: ldc-1.9.0
          os: osx
          osx_image: xcode9 # use OSX 10.13

        - d: dmd-2.069.0
          os: osx

        - d: ldc-1.1.1
          os: osx

    allow_failures:
        - d: gdc-4.8.5
        # Latest-available. Cutting-edge and becomes non-reproducable
        # whenever latest-avail changes, so these must be allowed to fail.
        # They're only included in the tests to help give a heads-up on
        # any issues with new compilers not yet explicitly included in the
        # list above.
        - d: dmd
        - d: ldc
