3d28c0182d
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.
91 lines
2.6 KiB
YAML
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
|