# 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 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 cache: directories: - $VERILATOR_CACHE before_install: # Perl modules needed for testing # Not listing Bit::Vector as slow to install, and only skips one test - touch temp.cpp ; g++ -E -dM -c temp.cpp | sort ; rm -rf temp.cpp - yes yes | sudo cpan -fi Unix::Processors Parallel::Forker - sudo apt-get install gdb gtkwave - sudo apt-get install libgoogle-perftools-dev 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 set 0 test compiler: gcc script: ci/test.sh vltmt0 - if: type != cron stage: test name: Vltmt set 1 test compiler: gcc script: ci/test.sh vltmt1 # 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