VHDL2019 assert api - partial (#748) #2233
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and test | |
on: [push, pull_request] | |
jobs: | |
build-ubuntu: | |
name: Ubuntu 20.04 | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- name: Get version | |
id: version | |
run: | | |
vers=$(sed -n '1s/AC_INIT(\[.*\], \[\([0-9\.]*\).*\].*/\1/p' configure.ac) | |
full=$(git log --date=format:%Y%m%d --pretty=$vers~git%cd.%h -1) | |
echo "VERSION=$full" >> $GITHUB_ENV | |
- name: Install dependencies | |
run: | | |
sudo apt-get install automake flex llvm-dev check lcov \ | |
libdw-dev libffi-dev bison libreadline-dev tcl8.6-dev \ | |
libzstd-dev libmicrohttpd-dev libxml2-utils | |
- name: Generate configure script | |
run: ./autogen.sh | |
- name: Configure | |
run: | | |
mkdir build && cd build | |
../configure --enable-gcov --enable-asan \ | |
--with-llvm=/usr/bin/llvm-config --enable-debug \ | |
--enable-verilog --enable-tcl | |
- name: Build | |
run: ASAN_OPTIONS=detect_leaks=0 make -C build | |
- name: Test | |
run: ASAN_OPTIONS=detect_leaks=0 make -C build check | |
- name: Test in JIT mode | |
run: | | |
export NVC_JIT_ASYNC=0 | |
export NVC_JIT_THRESHOLD=1 | |
export FORCE_JIT=1 | |
export ASAN_OPTIONS=detect_leaks=0 | |
cd build | |
./bin/run_regr | |
- name: Test in interpreter mode | |
run: | | |
export NVC_JIT_THRESHOLD=0 | |
export FORCE_JIT=1 | |
export ASAN_OPTIONS=detect_leaks=0 | |
cd build | |
./bin/run_regr | |
- name: JIT benchmarks | |
run: | | |
make -C build bin/jitperf | |
./build/bin/jitperf -L build/lib/ test/perf/simple.vhd | |
- name: Coverage report | |
run: make -C build cov-generate | |
- name: Coveralls | |
continue-on-error: true | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: ./build/coverage/nvc.info | |
- name: Build Debian package | |
run: | | |
ln -s contrib/debian debian | |
sed -i 's/nvc (.*)/nvc (${{ env.VERSION }}-1)/' debian/changelog | |
sudo apt-get build-dep . | |
dpkg-buildpackage -uc -us -b | |
mv ../*.deb . | |
- name: 'Upload artifact' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: 'Ubuntu package' | |
path: nvc_${{ env.VERSION }}-1_amd64.deb | |
build-mac: | |
name: Mac OS | |
runs-on: macos-11 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- name: Install dependencies | |
run: brew install llvm check automake libffi pkg-config zstd | |
- name: Generate configure script | |
run: ./autogen.sh | |
- name: Configure | |
run: | | |
mkdir build && cd build | |
../configure --with-llvm=$(brew --prefix llvm)/bin/llvm-config \ | |
--enable-debug --disable-lto | |
- name: Build | |
run: make -C build | |
- name: Test | |
run: make -C build check | |
- name: Test in JIT mode | |
run: | | |
export NVC_JIT_ASYNC=0 | |
export NVC_JIT_THRESHOLD=1 | |
export FORCE_JIT=1 | |
cd build | |
rm -rf logs | |
./bin/run_regr | |
- name: Dist clean | |
run: make -C build distclean | |
- name: Configure for release | |
run: | | |
cd build | |
../configure --with-llvm=$(brew --prefix llvm)/bin/llvm-config \ | |
--disable-debug | |
- name: Build release | |
run: make -C build | |
build-windows: | |
name: Windows MSYS2 | |
runs-on: windows-2019 | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- uses: msys2/setup-msys2@v2 | |
with: | |
update: true | |
install: >- | |
base-devel | |
mingw-w64-x86_64-llvm | |
mingw-w64-x86_64-check | |
mingw-w64-x86_64-ncurses | |
mingw-w64-x86_64-libffi | |
mingw-w64-x86_64-pkg-config | |
mingw-w64-x86_64-gcc | |
mingw-w64-x86_64-tcl | |
mingw-w64-x86_64-zstd | |
unzip | |
git | |
autoconf | |
automake-wrapper | |
- name: Generate configure script | |
run: bash autogen.sh | |
- name: Configure | |
run: | | |
mkdir build | |
cd build | |
bash ../configure --enable-debug --disable-lto | |
- name: Build | |
run: make -C build | |
- name: Test | |
run: make -C build check | |
- name: Test in JIT mode | |
run: | | |
export NVC_JIT_ASYNC=0 | |
export NVC_JIT_THRESHOLD=1 | |
export FORCE_JIT=1 | |
cd build | |
rm -rf logs | |
./bin/run_regr | |
- name: Build MSYS2 package | |
run: | | |
cd contrib/msys2 | |
makepkg-mingw -sCLf --nocheck | |
pacman -Qlp *.zst | |
echo "MSYS2_PKG=$(ls *.zst)" >> $GITHUB_ENV | |
- name: Install release | |
run: pacman -U --noconfirm contrib/msys2/*.zst | |
- name: Install OSVVM | |
run: nvc --install osvvm | |
- name: Install UVVM | |
run: nvc --install uvvm | |
- name: 'Upload artifact' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: 'MSYS2 mingw64 package' | |
path: contrib/msys2/${{ env.MSYS2_PKG }} | |
vests: | |
name: VESTs | |
needs: [ build-ubuntu ] | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- uses: actions/checkout@v3 | |
with: | |
repository: nickg/vests | |
path: vests | |
fetch-depth: 1 | |
- name: Install dependencies | |
run: sudo apt-get install ruby ruby-colorize | |
- uses: actions/download-artifact@v3 | |
with: | |
name: 'Ubuntu package' | |
- name: Install pre-built package | |
run: >- | |
sudo apt-get install ./nvc_*.deb | |
- name: Add to PATH | |
run: >- | |
echo /opt/nvc-*/bin >> $GITHUB_PATH | |
- name: Check --version output | |
run: nvc --version | |
- name: Run VESTs | |
run: >- | |
cd vests && ../test/run_vests.rb . | |
projects: | |
name: External Projects | |
needs: [ build-ubuntu ] | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 15 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- uses: actions/checkout@v3 | |
with: | |
repository: nickg/vhdl-projects | |
path: vhdl-projects | |
fetch-depth: 1 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: 'Ubuntu package' | |
- name: Install pre-built package | |
run: >- | |
sudo apt-get install ./nvc_*.deb | |
- name: Add to PATH | |
run: >- | |
echo /opt/nvc-*/bin >> $GITHUB_PATH | |
- name: Check --version output | |
run: nvc --version | |
- name: Install OSVVM | |
run: nvc --install osvvm | |
- name: Install UVVM | |
run: nvc --install uvvm | |
- name: Test FPHDL | |
run: ./vhdl-projects/fphdl/test.sh | |
- name: Test ZPU | |
run: ./vhdl-projects/zpu/test.sh | |
- name: Test Flopoco | |
run: ./vhdl-projects/flopoco/test.sh | |
- name: Test HardH264 | |
run: ./vhdl-projects/hardh264/test.sh | |
- name: Test J-Core | |
run: ./vhdl-projects/jcore/test.sh | |
- name: Test Dummy_Plug | |
run: ./vhdl-projects/ikwzm/dummyplug/test.sh | |
- name: Test OpenRIO | |
run: ./vhdl-projects/openrio/test.sh | |
- name: Test SPI-FPGA | |
run: ./vhdl-projects/spi-fpga/test.sh | |
- name: Test JSON-for-VHDL | |
run: ./vhdl-projects/json/test.sh | |
- name: Test OSVVM | |
run: ./vhdl-projects/osvvm/test.sh | |
- name: Test UVVM | |
run: ./vhdl-projects/uvvm/test.sh | |
- name: Test vhdl-format | |
run: ./vhdl-projects/format/test.sh | |
- name: Test NEORV32 | |
run: ./vhdl-projects/neorv32/test.sh | |
- name: Test vhdl-extras | |
run: ./vhdl-projects/extras/test.sh | |
- name: Test PoC | |
run: ./vhdl-projects/poc/test.sh | |
vunit: | |
name: VUnit | |
needs: [ build-ubuntu ] | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
repository: VUnit/vunit | |
ref: master | |
path: vunit | |
submodules: recursive | |
fetch-depth: 1 | |
- uses: actions/checkout@v3 | |
with: | |
#repository: antonblanchard/microwatt | |
#ref: master | |
repository: nickg/microwatt | |
ref: fix-vunit | |
path: microwatt | |
fetch-depth: 1 | |
- name: Install dependencies | |
run: sudo apt-get install python3 python3-colorama make | |
- uses: actions/download-artifact@v3 | |
with: | |
name: 'Ubuntu package' | |
- name: Install pre-built package | |
run: >- | |
sudo apt-get install ./nvc_*.deb | |
- name: Add to PATH | |
run: >- | |
echo /opt/nvc-*/bin >> $GITHUB_PATH | |
- name: Check --version output | |
run: nvc --version | |
- name: Run uart example | |
run: | | |
export VUNIT_SIMULATOR=nvc | |
export PYTHONPATH=$(pwd)/vunit | |
cd vunit/examples/vhdl/uart | |
python3 run.py | |
- name: Run axi_dma example | |
run: | | |
export VUNIT_SIMULATOR=nvc | |
export PYTHONPATH=$(pwd)/vunit | |
cd vunit/examples/vhdl/axi_dma | |
python3 run.py | |
- name: Run com example | |
run: | | |
export VUNIT_SIMULATOR=nvc | |
export PYTHONPATH=$(pwd)/vunit | |
cd vunit/examples/vhdl/com | |
python3 run.py | |
- name: Run com tests | |
run: | | |
export VUNIT_SIMULATOR=nvc | |
export PYTHONPATH=$(pwd)/vunit | |
cd vunit/vunit/vhdl/com | |
python3 run.py | |
- name: Run verification_components tests | |
run: | | |
export VUNIT_SIMULATOR=nvc | |
export PYTHONPATH=$(pwd)/vunit | |
cd vunit/vunit/vhdl/verification_components | |
python3 run.py | |
- name: Run Microwatt tests | |
run: | | |
export VUNIT_SIMULATOR=nvc | |
export PYTHONPATH=$(pwd)/vunit | |
cd microwatt | |
make git.vhdl | |
python3 run.py | |
osvvm: | |
if: ${{ false }} # Takes too long for now | |
name: OSVVM | |
needs: [ build-ubuntu ] | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- name: Install dependencies | |
run: sudo apt-get install tcl tcllib git | |
- uses: actions/download-artifact@v3 | |
with: | |
name: 'Ubuntu package' | |
- name: Install pre-built package | |
run: >- | |
sudo apt-get install ./nvc_*.deb | |
- name: Add to PATH | |
run: >- | |
echo /opt/nvc-*/bin >> $GITHUB_PATH | |
- name: Check --version output | |
run: nvc --version | |
- name: Run OSVVM tests | |
run: | | |
tclsh ./test/test-osvvm.tcl |