# DESCRIPTION: Travis-CI config # # Copyright 2003-2019 by Todd Strader. Verilator 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. version: ~> 1.0 os: linux language: cpp cache: ccache env: global: - VERILATOR_CACHE=$HOME/verilator_cache - VERILATOR_ROOT=$PWD - VERILATOR_NUM_JOBS=$(echo `nproc` + 1 | bc) - VERILATOR_CONFIG_FLAGS="--enable-maintainer-mode --enable-longtests" - VERILATOR_AUTHOR_SITE=1 - OBJCACHE=ccache cache: directories: - $VERILATOR_CACHE before_install: # Perl modules needed for testing - yes yes | sudo cpan -fi Unix::Processors Parallel::Forker Bit::Vector - sudo apt-get install gdb gtkwave before_script: - bash -x ci/build_vcddiff.sh - bash -x ci/build_verilator.sh after_script: - ccache -s stages: - "Build Verilator" - test jobs: include: - if: type != cron stage: "Build Verilator" name: Build Verilator compiler: gcc script: echo "Done building Verilator" # Non-cron build will just run on whatever linux flavor we get - if: type != cron stage: test name: Dist test compiler: gcc script: ci/test.sh dist - if: type != cron stage: test name: Vlt test compiler: gcc script: ci/test.sh vlt - if: type != cron stage: test name: Vltmt test compiler: gcc script: ci/test.sh vltmt # Cron builds try different OS/compiler combinations - if: type = cron stage: "Build Verilator" name: Build xenial gcc Verilator os: linux dist: xenial compiler: gcc script: echo "Done building Verilator" - if: type = cron stage: test name: Xenial gcc dist test os: linux dist: xenial compiler: gcc script: ci/test.sh dist - if: type = cron stage: test name: Xenial gcc vlt test os: linux dist: xenial compiler: gcc script: ci/test.sh vlt - if: type = cron stage: test name: Xenial gcc vltmt test os: linux dist: xenial compiler: gcc script: ci/test.sh vltmt - if: type = cron stage: "Build Verilator" name: Build xenial clang Verilator os: linux dist: xenial compiler: clang script: echo "Done building Verilator" - if: type = cron stage: test name: Xenial clang dist test os: linux dist: xenial compiler: clang script: ci/test.sh dist - if: type = cron stage: test name: Xenial clang vlt test os: linux dist: xenial compiler: clang script: ci/test.sh vlt - if: type = cron stage: test name: Xenial clang vltmt test os: linux dist: xenial compiler: clang script: ci/test.sh vltmt # - if: type = cron # stage: "Build Verilator" # name: Build OSX gcc Verilator # os: osx # compiler: gcc # script: echo "Done building Verilator" # - if: type = cron # stage: test # name: OSX gcc dist test # os: osx # compiler: gcc # script: ci/test.sh dist # - if: type = cron # stage: test # name: OSX gcc vlt test # os: osx # 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 - if: type = cron stage: "Build Verilator" name: Build trusty gcc Verilator os: linux dist: trusty compiler: gcc script: echo "Done building Verilator" - if: type = cron stage: test name: Trusty gcc dist test os: linux dist: trusty compiler: gcc script: ci/test.sh dist - if: type = cron stage: test name: Trusty gcc vlt test os: linux dist: trusty compiler: gcc script: ci/test.sh vlt - if: type = cron stage: test os: linux dist: trusty name: Trusty gcc vltmt test compiler: gcc script: ci/test.sh vltmt notifications: email: if: repo = verilator/verilator recipients: - wsnyder@wsnyder.org - todd.strader@gmail.com