1
0
rocket-chip/.travis.yml
Megan Wachs 3d28c0182d travis: add a branch whitelist with just 'master'.
Travis allows us to build on branch updates and on PRs. Right now our process is to build always on PRs, but to manually only build 'master' when we know that riscv-tools has been bumped (because that rebuilds the master cache which holds riscv-tools). But this is an annoying and error-prone processes that requires extra admin permissions.

With this change, i think we can just leave "Build Branch Updates" to "ON" and get the same effect we are currently doing manually, because only on update to master branch will it do a build. PRs to master branch will get a build. PRs to other branches will I believe NOT get a build.
2017-07-03 13:25:05 -07:00

91 lines
2.6 KiB
YAML

git:
submodules: false
language: scala
# run on new infrastructure
sudo: false
cache:
apt: true
directories:
$HOME/.ivy2
regression/install
emulator/verilator
# 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
# 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: 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:
- travis_wait 80 make emulator-ndebug -C regression SUITE=UnittestSuite JVM_MEMORY=3G
- travis_wait 80 make emulator-regression-tests -C regression SUITE=UnittestSuite JVM_MEMORY=3G
- <<: *test
script:
- travis_wait 80 make emulator-ndebug -C regression SUITE=RocketSuiteC JVM_MEMORY=3G
- travis_wait 80 make emulator-regression-tests -C regression SUITE=RocketSuiteC JVM_MEMORY=3G
- <<: *test
script:
- travis_wait 80 make emulator-ndebug -C regression SUITE=RocketSuiteB JVM_MEMORY=3G
- travis_wait 80 make emulator-regression-tests -C regression SUITE=RocketSuiteB JVM_MEMORY=3G
- <<: *test
script:
- travis_wait 80 make emulator-ndebug -C regression SUITE=RocketSuiteA JVM_MEMORY=3G
- travis_wait 80 make emulator-regression-tests -C regression SUITE=RocketSuiteA JVM_MEMORY=3G
- <<: *test
script:
- travis_wait 80 make emulator-ndebug -C regression SUITE=GroundtestSuite JVM_MEMORY=3G
- travis_wait 80 make emulator-regression-tests -C regression SUITE=GroundtestSuite JVM_MEMORY=3G