Skip to content

VHDL2019 assert api - partial #2230

VHDL2019 assert api - partial

VHDL2019 assert api - partial #2230

Workflow file for this run

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