Bump version to 1.13.3 #3177
Workflow file for this run
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 22.04 | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
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 update | |
sudo apt-get install automake flex llvm-dev check lcov \ | |
libdw-dev libffi-dev bison libreadline-dev tcl8.6-dev \ | |
libzstd-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 --enable-gui | |
- 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 | |
# ieee12 too slow | |
# - name: Test without intrinsics | |
# run: | | |
# export NVC_JIT_INTRINSICS=0 | |
# cd build | |
# rm -rf logs | |
# ./bin/run_regr ieee | |
- name: Test without vector intrinsics | |
run: | | |
export NVC_JIT_INTRINSICS=1 | |
export NVC_VECTOR_INTRINSICS=0 | |
cd build | |
rm -rf logs | |
ASAN_OPTIONS=detect_leaks=0 ./bin/run_regr ieee | |
- name: JIT benchmarks | |
run: | | |
make -C build bin/jitperf | |
export ASAN_OPTIONS=detect_leaks=0 # XXX: remove this | |
./build/bin/jitperf -L build/lib/ test/perf/simple.vhd | |
- name: Check for orphan tests | |
run: make -C build orphan-tests | |
- 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 | |
build-mac: | |
name: Mac OS | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: Fix Python symlinks | |
run: | | |
find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete -print | |
brew unlink python && brew link --overwrite python | |
- 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-2022 | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v4 | |
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-pkgconf | |
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@v4 | |
with: | |
name: 'MSYS2 mingw64 package' | |
path: contrib/msys2/${{ env.MSYS2_PKG }} | |
build-package: | |
name: Build package | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
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: Build Debian package | |
run: | | |
ln -s contrib/debian debian | |
sed -i 's/nvc (.*)/nvc (${{ env.VERSION }}-1)/' debian/changelog | |
sudo apt-get update | |
sudo apt-get build-dep . | |
dpkg-buildpackage -uc -us -b | |
mv ../*.deb . | |
- name: 'Upload artifact' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: 'Ubuntu package' | |
path: nvc_${{ env.VERSION }}-1_amd64.deb | |
vests: | |
name: VESTs | |
needs: [ build-package ] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- uses: actions/checkout@v4 | |
with: | |
repository: nickg/vests | |
path: vests | |
fetch-depth: 1 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install ruby ruby-colorize | |
- uses: actions/download-artifact@v4 | |
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-package ] | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 15 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- uses: actions/checkout@v4 | |
with: | |
repository: nickg/vhdl-projects | |
path: vhdl-projects | |
fetch-depth: 1 | |
ref: 84b3a2822d6381c1116a4689caa78fb13ff53c08 | |
- uses: actions/download-artifact@v4 | |
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: Install FMF packages | |
run: nvc --install fmf | |
- 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 | |
- name: Test FMF dsp6713 | |
run: ./vhdl-projects/fmf/dsp6713/test.sh | |
- name: Test Grlib | |
run: ./vhdl-projects/grlib/test.sh | |
- name: Test MEGA65 | |
run: ./vhdl-projects/mega65/test.sh | |
- name: Test NetWiz | |
run: ./vhdl-projects/netwiz/test.sh | |
- name: Test real_matrix package | |
run: ./vhdl-projects/realmatrix/test.sh | |
- name: Test Canola | |
run: ./vhdl-projects/canola/test.sh | |
vunit: | |
name: VUnit | |
needs: [ build-package ] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: VUnit/vunit | |
ref: master | |
path: vunit | |
submodules: recursive | |
fetch-depth: 1 | |
- uses: actions/checkout@v4 | |
with: | |
repository: antonblanchard/microwatt | |
ref: master | |
path: microwatt | |
fetch-depth: 1 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install python3 python3-colorama make | |
- uses: actions/download-artifact@v4 | |
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-package ] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install tcl tcllib git | |
- uses: actions/download-artifact@v4 | |
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 | |
cocotb: | |
name: Cocotb | |
needs: [ build-package ] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: cocotb/cocotb | |
ref: master | |
path: cocotb | |
submodules: recursive | |
fetch-depth: 1 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install python3 python3-nox | |
- uses: actions/download-artifact@v4 | |
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 cocotb regression tests | |
run: | | |
cd cocotb | |
python3 -mnox -k "dev_test_sim and nvc and vhdl" | |
msi-installer: | |
name: Windows installer | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Build MSI installer | |
uses: ./.github/actions/windows-installer | |
- name: Run ieee1 regression test | |
shell: powershell | |
run: | | |
nvc.exe -a test\regress\ieee1.vhd | |
nvc.exe -e ieee1 | |
nvc.exe -r ieee1 |