git:
  submodules: false
language: scala
sudo: false
cache:
  apt: true
  directories:
    $HOME/.cache/coursier
    $HOME/.sbt
    regression/install
    emulator/verilator

dist: xenial

# packages needed to build riscv-tools
addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - gcc-4.8
      - g++-4.8
      - gperf
      - autoconf
      - automake
      - autotools-dev
      - libmpc-dev
      - libmpfr-dev
      - libgmp-dev
      - gawk
      - build-essential
      - bison
      - flex
      - texinfo
      - device-tree-compiler
      - libusb-1.0-0-dev
      - python3-pexpect
      - libre2-dev


# blacklist private branches
branches:
  except:
    - hwacha
    - boom
    - /^hurricane.*$/

# These branches are the only ones that
# will build when "build branch updates"
# is set in settings (branches which PR against
# them are still built). With this set,
# the above blacklist is not useful.
# Adding this allows us to keep "Build Branch Updates"
# set to 'ON'.

branches:
  only:
  - master

jobs:
  include:
    - stage: check wit
      script:
        - ci-tests/check_submodules
    - stage: prepare cache-riscv-tools
      script:
        - travis_wait 120 make tools -C regression SUITE=none
      before_install:
        - export CXX=g++-4.8 CC=gcc-4.8
      before_cache:
        - ls -t regression/install | tail -n+2 | sed s@^@regression/install/@ | xargs rm -rf
    - stage: prepare cache-verilator
      script:
        - travis_wait 120 make verilator -C regression SUITE=none
      before_install:
        - export CXX=g++-4.8 CC=gcc-4.8
    - &test
      stage: Test
      script:
        - ./regression/run-test-bucket 1
    - <<: *test
      script:
        - ./regression/run-test-bucket 2
    - <<: *test
      script:
        - ./regression/run-test-bucket 3
    - <<: *test
      script:
        - ./regression/run-test-bucket 4
    - <<: *test
      script:
        - ./regression/run-test-bucket 5
    - <<: *test
      script:
        - ./regression/run-test-bucket 6
    - <<: *test
      script:
        - ./regression/run-test-bucket 7
    - <<: *test
      name: check wake compilation
      script:
        - ci-tests/wake_scala_compilation
    - <<: *test*
      name: Scala tests
      script:
        - ./regression/run-test-bucket 8
    - <<: *test*
      name: Scala tests
      script:
        - ./regression/run-test-bucket 9