forked from github/verilator
267 lines
6.4 KiB
YAML
267 lines
6.4 KiB
YAML
# 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 lcov
|
|
- sudo apt-get install libfl-dev || true
|
|
- 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:
|
|
- vbuild
|
|
- test
|
|
|
|
jobs:
|
|
# compiler: gcc clang
|
|
# 12.04 dist: precise perl problem
|
|
# 14.04 dist: trusty cron
|
|
# 16.04 dist: xenial cron cron
|
|
# 18.04 dist: bionic cron
|
|
# 20.04 dist: focal !cron cron
|
|
# 20.04 coverage cron
|
|
include:
|
|
- if: type != cron
|
|
stage: vbuild
|
|
name: "Build Verilator"
|
|
dist: focal
|
|
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: "Test Dist"
|
|
dist: focal
|
|
compiler: gcc
|
|
script: ci/test.sh dist
|
|
- if: type != cron
|
|
stage: test
|
|
name: "Test Vlt"
|
|
dist: focal
|
|
compiler: gcc
|
|
script: ci/test.sh vlt
|
|
- if: type != cron
|
|
stage: test
|
|
name: "Test Vltmt set 0"
|
|
dist: focal
|
|
compiler: gcc
|
|
script: ci/test.sh vltmt0
|
|
- if: type != cron
|
|
stage: test
|
|
name: "Test Vltmt set 1"
|
|
dist: focal
|
|
compiler: gcc
|
|
script: ci/test.sh vltmt1
|
|
# Cron builds try different OS/compiler combinations
|
|
- if: type = cron
|
|
dist: trusty
|
|
compiler: gcc
|
|
stage: vbuild
|
|
name: "14.04 gcc build"
|
|
script: echo
|
|
- if: type = cron
|
|
dist: trusty
|
|
compiler: gcc
|
|
stage: test
|
|
name: "14.04 gcc distvlt"
|
|
script: ci/test.sh distvlt
|
|
- if: type = cron
|
|
dist: trusty
|
|
compiler: gcc
|
|
stage: test
|
|
name: "14.04 gcc vltmt0"
|
|
script: ci/test.sh vltmt0
|
|
- if: type = cron
|
|
dist: trusty
|
|
compiler: gcc
|
|
stage: test
|
|
name: "14.04 gcc vltmt1"
|
|
script: ci/test.sh vltmt1
|
|
#
|
|
- if: type = cron
|
|
dist: xenial
|
|
compiler: gcc
|
|
stage: vbuild
|
|
name: "16.04 gcc build"
|
|
script: echo
|
|
- if: type = cron
|
|
dist: xenial
|
|
compiler: gcc
|
|
stage: test
|
|
name: "16.04 gcc distvlt"
|
|
script: ci/test.sh distvlt
|
|
- if: type = cron
|
|
dist: xenial
|
|
compiler: gcc
|
|
stage: test
|
|
name: "16.04 gcc vltmt0"
|
|
script: ci/test.sh vltmt0
|
|
- if: type = cron
|
|
dist: xenial
|
|
compiler: gcc
|
|
stage: test
|
|
name: "16.04 gcc vltmt1"
|
|
script: ci/test.sh vltmt1
|
|
#
|
|
- if: type = cron
|
|
dist: bionic
|
|
compiler: gcc
|
|
stage: vbuild
|
|
name: "18.04 gcc build"
|
|
script: echo
|
|
- if: type = cron
|
|
dist: bionic
|
|
compiler: gcc
|
|
stage: test
|
|
name: "18.04 gcc distvlt"
|
|
script: ci/test.sh distvlt
|
|
- if: type = cron
|
|
dist: bionic
|
|
compiler: gcc
|
|
stage: test
|
|
name: "18.04 gcc vltmt0"
|
|
script: ci/test.sh vltmt0
|
|
- if: type = cron
|
|
dist: bionic
|
|
compiler: gcc
|
|
stage: test
|
|
name: "18.04 gcc vltmt1"
|
|
script: ci/test.sh vltmt1
|
|
#
|
|
- if: type = cron
|
|
dist: xenial
|
|
compiler: clang
|
|
stage: vbuild
|
|
name: "16.04 clang build"
|
|
script: echo
|
|
- if: type = cron
|
|
dist: xenial
|
|
compiler: clang
|
|
stage: test
|
|
name: "16.04 clang distvlt"
|
|
script: ci/test.sh distvlt
|
|
- if: type = cron
|
|
dist: xenial
|
|
compiler: clang
|
|
stage: test
|
|
name: "16.04 clang vltmt0"
|
|
script: ci/test.sh vltmt0
|
|
- if: type = cron
|
|
dist: xenial
|
|
compiler: clang
|
|
stage: test
|
|
name: "16.04 clang vltmt1"
|
|
script: ci/test.sh vltmt1
|
|
#
|
|
- if: type = cron
|
|
dist: focal
|
|
compiler: clang
|
|
stage: vbuild
|
|
name: "20.04 clang build"
|
|
script: echo
|
|
- if: type = cron
|
|
dist: focal
|
|
compiler: clang
|
|
stage: test
|
|
name: "20.04 clang distvlt"
|
|
script: ci/test.sh distvlt
|
|
- if: type = cron
|
|
dist: focal
|
|
compiler: clang
|
|
stage: test
|
|
name: "20.04 clang vltmt0"
|
|
script: ci/test.sh vltmt0
|
|
- if: type = cron
|
|
dist: focal
|
|
compiler: clang
|
|
stage: test
|
|
name: "20.04 clang vltmt1"
|
|
script: ci/test.sh vltmt1
|
|
#
|
|
# Cron coverage runs (two parts to avoid 50min timeout)
|
|
- if: type = cron
|
|
dist: focal
|
|
compiler: gcc
|
|
stage: vbuild
|
|
name: "Coverage Build"
|
|
script: ci/test.sh coverage-build
|
|
- if: type = cron
|
|
dist: focal
|
|
compiler: gcc
|
|
stage: test
|
|
name: "Coverage dist"
|
|
script: ci/test.sh coverage-dist
|
|
- if: type = cron
|
|
dist: focal
|
|
compiler: gcc
|
|
stage: test
|
|
name: "Coverage vlt set 0"
|
|
script: ci/test.sh coverage-vlt0
|
|
- if: type = cron
|
|
dist: focal
|
|
compiler: gcc
|
|
stage: test
|
|
name: "Coverage vltmt set 0"
|
|
script: ci/test.sh coverage-vltmt0
|
|
- if: type = cron
|
|
dist: focal
|
|
compiler: gcc
|
|
stage: test
|
|
name: "Coverage vlt set 1"
|
|
script: ci/test.sh coverage-vlt1
|
|
- if: type = cron
|
|
dist: focal
|
|
compiler: gcc
|
|
stage: test
|
|
name: "Coverage vltmt set 1"
|
|
script: ci/test.sh coverage-vltmt1
|
|
- if: type = cron
|
|
dist: focal
|
|
compiler: gcc
|
|
stage: test
|
|
name: "Coverage vlt set 2"
|
|
script: ci/test.sh coverage-vlt2
|
|
- if: type = cron
|
|
dist: focal
|
|
compiler: gcc
|
|
stage: test
|
|
name: "Coverage vlt set 3"
|
|
script: ci/test.sh coverage-vlt3
|
|
|
|
notifications:
|
|
email:
|
|
if: repo = verilator/verilator
|
|
recipients:
|
|
- wsnyder@wsnyder.org
|
|
- todd.strader@gmail.com
|