verilator/.travis.yml

188 lines
4.5 KiB
YAML
Raw Normal View History

2019-06-27 15:26:25 +00:00
# DESCRIPTION: Travis-CI config
#
# Copyright 2003-2020 by Wilson Snyder. This program is free software; you
# can redistribute it and/or modify it under the terms of either the GNU
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
2019-06-27 15:26:25 +00:00
2019-11-14 22:54:57 +00:00
version: ~> 1.0
2019-07-18 09:31:02 +00:00
2019-11-14 22:54:57 +00:00
os: linux
language: cpp
cache: ccache
env:
global:
- VERILATOR_CACHE=$HOME/verilator_cache
- VERILATOR_ROOT=$PWD
2019-11-14 22:54:57 +00:00
- VERILATOR_NUM_JOBS=$(echo `nproc` + 1 | bc)
- VERILATOR_CONFIG_FLAGS="--enable-maintainer-mode --enable-longtests"
- VERILATOR_AUTHOR_SITE=1
cache:
directories:
- $VERILATOR_CACHE
before_install:
# Perl modules needed for testing
# Not listing Bit::Vector as slow to install, and only skips one test
2020-04-05 00:48:03 +00:00
- touch temp.cpp ; g++ -E -dM -c temp.cpp | sort ; rm -rf temp.cpp
- yes yes | sudo cpan -fi Unix::Processors Parallel::Forker
2019-11-14 22:54:57 +00:00
- sudo apt-get install gdb gtkwave
- sudo apt-get install libgoogle-perftools-dev
before_script:
2019-12-09 10:55:18 +00:00
- bash -x ci/build_vcddiff.sh
- bash -x ci/build_verilator.sh
after_script:
- ccache -s
stages:
- "Build Verilator"
- test
jobs:
2019-07-18 09:31:02 +00:00
include:
- if: type != cron
stage: "Build Verilator"
name: Build Verilator
compiler: gcc
script: echo "Done building Verilator"
2019-07-18 09:31:02 +00:00
# Non-cron build will just run on whatever linux flavor we get
- if: type != cron
stage: test
name: Dist test
2019-07-18 09:31:02 +00:00
compiler: gcc
script: ci/test.sh dist
2019-07-18 09:31:02 +00:00
- if: type != cron
stage: test
name: Vlt test
2019-07-18 09:31:02 +00:00
compiler: gcc
script: ci/test.sh vlt
2019-07-18 09:31:02 +00:00
- if: type != cron
stage: test
name: Vltmt set 0 test
2019-07-18 09:31:02 +00:00
compiler: gcc
script: ci/test.sh vltmt0
- if: type != cron
stage: test
name: Vltmt set 1 test
compiler: gcc
script: ci/test.sh vltmt1
2019-07-18 09:31:02 +00:00
# Cron builds try different OS/compiler combinations
- if: type = cron
stage: "Build Verilator"
name: Build xenial gcc Verilator
2019-11-14 22:54:57 +00:00
os: linux
dist: xenial
compiler: gcc
script: echo "Done building Verilator"
- if: type = cron
stage: test
2019-11-21 12:47:18 +00:00
name: Xenial gcc dist test
2019-11-14 22:54:57 +00:00
os: linux
dist: xenial
2019-07-18 09:31:02 +00:00
compiler: gcc
script: ci/test.sh dist
2019-07-18 09:31:02 +00:00
- if: type = cron
stage: test
2019-11-21 12:47:18 +00:00
name: Xenial gcc vlt test
2019-11-14 22:54:57 +00:00
os: linux
dist: xenial
2019-07-18 09:31:02 +00:00
compiler: gcc
script: ci/test.sh vlt
2019-07-18 09:31:02 +00:00
- if: type = cron
stage: test
2019-11-21 12:47:18 +00:00
name: Xenial gcc vltmt test
2019-11-14 22:54:57 +00:00
os: linux
dist: xenial
2019-07-18 09:31:02 +00:00
compiler: gcc
script: ci/test.sh vltmt
- if: type = cron
stage: "Build Verilator"
name: Build xenial clang Verilator
2019-11-14 22:54:57 +00:00
os: linux
dist: xenial
compiler: clang
script: echo "Done building Verilator"
2019-07-18 09:31:02 +00:00
- if: type = cron
stage: test
2019-11-21 12:47:18 +00:00
name: Xenial clang dist test
2019-11-14 22:54:57 +00:00
os: linux
dist: xenial
2019-07-18 09:31:02 +00:00
compiler: clang
script: ci/test.sh dist
2019-07-18 09:31:02 +00:00
- if: type = cron
stage: test
2019-11-21 12:47:18 +00:00
name: Xenial clang vlt test
2019-11-14 22:54:57 +00:00
os: linux
dist: xenial
2019-07-18 09:31:02 +00:00
compiler: clang
script: ci/test.sh vlt
2019-07-18 09:31:02 +00:00
- if: type = cron
stage: test
2019-11-21 12:47:18 +00:00
name: Xenial clang vltmt test
2019-11-14 22:54:57 +00:00
os: linux
dist: xenial
2019-07-18 09:31:02 +00:00
compiler: clang
script: ci/test.sh vltmt
2019-07-18 09:31:02 +00:00
# - if: type = cron
# stage: "Build Verilator"
# name: Build OSX gcc Verilator
2019-07-18 09:31:02 +00:00
# os: osx
# compiler: gcc
# script: echo "Done building Verilator"
2019-07-18 09:31:02 +00:00
# - if: type = cron
# stage: test
# name: OSX gcc dist test
2019-07-18 09:31:02 +00:00
# os: osx
# compiler: gcc
# script: ci/test.sh dist
2019-07-18 09:31:02 +00:00
# - if: type = cron
# stage: test
# name: OSX gcc vlt test
# os: osx
2019-07-18 09:31:02 +00:00
# compiler: gcc
# script: ci/test.sh vlt
# - if: type = cron
# stage: test
# name: OSX gcc vltmt test
# os: osx
# compiler: gcc
# script: ci/test.sh vltmt
2019-07-18 09:31:02 +00:00
- if: type = cron
stage: "Build Verilator"
name: Build trusty gcc Verilator
2019-11-14 22:54:57 +00:00
os: linux
dist: trusty
2019-07-18 09:31:02 +00:00
compiler: gcc
script: echo "Done building Verilator"
2019-07-18 09:31:02 +00:00
- if: type = cron
stage: test
name: Trusty gcc dist test
2019-11-14 22:54:57 +00:00
os: linux
dist: trusty
2019-07-18 09:31:02 +00:00
compiler: gcc
script: ci/test.sh dist
2019-07-18 09:31:02 +00:00
- if: type = cron
stage: test
name: Trusty gcc vlt test
2019-11-14 22:54:57 +00:00
os: linux
dist: trusty
2019-07-18 09:31:02 +00:00
compiler: gcc
script: ci/test.sh vlt
- if: type = cron
stage: test
2019-11-14 22:54:57 +00:00
os: linux
dist: trusty
name: Trusty gcc vltmt test
compiler: gcc
script: ci/test.sh vltmt
2019-11-14 22:54:57 +00:00
notifications:
email:
if: repo = verilator/verilator
recipients:
2019-12-02 13:18:15 +00:00
- wsnyder@wsnyder.org
2019-11-14 22:54:57 +00:00
- todd.strader@gmail.com