[pull] master from verilog-to-routing:master #388
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: Test | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 0 * * *' # daily | |
env: | |
# default compiler for all non-compatibility tests | |
MATRIX_EVAL: "CC=gcc-11 && CXX=g++-11" | |
jobs: | |
Run-tests: | |
# Prevents from running on forks where no custom runners are available | |
if: ${{ github.repository_owner == 'verilog-to-routing' }} | |
container: ubuntu:jammy | |
runs-on: [self-hosted, Linux, X64] | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- {test: "vtr_reg_nightly_test1", cores: "16", options: "", cmake: "", extra_pkgs: ""} | |
- {test: "vtr_reg_nightly_test1_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""} | |
- {test: "vtr_reg_nightly_test2", cores: "16", options: "", cmake: "", extra_pkgs: ""} | |
- {test: "vtr_reg_nightly_test2_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: "" } | |
- {test: "vtr_reg_nightly_test3", cores: "16", options: "", cmake: "", extra_pkgs: ""} | |
- {test: "vtr_reg_nightly_test3_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""} | |
- {test: "vtr_reg_nightly_test4", cores: "16", options: "", cmake: "", extra_pkgs: "" } | |
- {test: "vtr_reg_nightly_test4_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: "" } | |
- {test: "vtr_reg_nightly_test5", cores: "16", options: "", cmake: "", extra_pkgs: ""} | |
- {test: "vtr_reg_nightly_test6", cores: "16", options: "", cmake: "", extra_pkgs: ""} | |
- {test: "vtr_reg_parmys", cores: "16", options: "", cmake: "", extra_pkgs: "" } | |
- {test: "vtr_reg_strong", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3", extra_pkgs: "libeigen3-dev"} | |
- {test: "vtr_reg_strong_odin", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3 -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"} | |
- {test: "vtr_reg_strong_odin", cores: "16", options: "-skip_qor", cmake: "-DVTR_ASSERT_LEVEL=3 -DVTR_ENABLE_SANITIZE=ON -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"} | |
- {test: "vtr_reg_system_verilog", cores: "16", options: "", cmake: "-DYOSYS_F4PGA_PLUGINS=ON", extra_pkgs: ""} | |
- {test: "odin_reg_strong", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""} | |
env: | |
DEBIAN_FRONTEND: "noninteractive" | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup | |
run: stdbuf -i0 -i0 -e0 ./.github/scripts/hostsetup.sh | |
- name: Install external libraries | |
run: apt install -y ${{ matrix.extra_pkgs }} | |
if: ${{ matrix.extra_pkgs }} | |
- name: Execute test script | |
run: stdbuf -i0 -o0 -e0 ./.github/scripts/run-vtr.sh | |
env: | |
VPR_NUM_WORKERS: 4 | |
VTR_TEST: ${{ matrix.test }} | |
VTR_TEST_OPTIONS: ${{ matrix.options }} | |
VTR_CMAKE_PARAMS: ${{ matrix.cmake }} | |
NUM_CORES: ${{ matrix.cores }} | |
- uses: actions/upload-artifact@v3 | |
if: ${{ always() }} | |
with: | |
path: | | |
**/results*.gz | |
**/plot_*.svg | |
**/qor_results*.tar.gz | |
Build: | |
name: 'B: Building VtR' | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { build_type: 'release', verbose: '0' } | |
- { build_type: 'debug', verbose: '0' } | |
- { build_type: 'debug', verbose: '1' } | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.10.10 | |
- uses: actions/checkout@v3 | |
- run: ./.github/scripts/install_dependencies.sh | |
- uses: hendrikmuhs/[email protected] | |
- name: Test | |
env: | |
BUILD_TYPE: ${{ matrix.build_type }} | |
run: | | |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
./.github/scripts/build.sh VERBOSE=${{ matrix.verbose }} | |
Format: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { name: 'C/C++', script: 'check-format.sh' } | |
- { name: 'Python', script: 'check-format-py.sh' } | |
- { name: 'Python Lint', script: 'pylint_check.py' } | |
name: 'F: ${{ matrix.name }}' | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.10.10 | |
- uses: actions/checkout@v3 | |
- run: ./.github/scripts/install_dependencies.sh | |
- name: Test | |
run: ./dev/${{ matrix.script }} | |
UniTests: | |
name: 'U: C++ Unit Tests' | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.10.10 | |
- uses: actions/checkout@v3 | |
- run: ./.github/scripts/install_dependencies.sh | |
- name: Test | |
env: | |
CMAKE_PARAMS: "-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on" | |
run: ./.github/scripts/unittest.sh | |
Warnings: | |
name: 'W: Check Compilation Warnings' | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.10.10 | |
- uses: actions/checkout@v3 | |
- run: ./.github/scripts/install_dependencies.sh | |
- uses: hendrikmuhs/[email protected] | |
- name: Test | |
env: | |
#In order to get compilation warnings produced per source file, we must do a non-IPO build | |
#We also turn warnings into errors for this target by doing a strict compile | |
CMAKE_PARAMS: "-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_STRICT_COMPILE=on -DVTR_IPO_BUILD=off" | |
run: | | |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
./.github/scripts/build.sh | |
Regression: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: [ | |
{ | |
name: 'Basic', | |
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on', | |
suite: 'vtr_reg_basic' | |
}, | |
{ | |
name: 'Basic_odin', | |
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_ODIN=on', | |
suite: 'vtr_reg_basic_odin' | |
}, | |
{ | |
name: 'Basic with NO_GRAPHICS', | |
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=off', | |
suite: 'vtr_reg_basic' | |
}, | |
{ | |
name: 'Basic with VTR_ENABLE_DEBUG_LOGGING', | |
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on', | |
suite: 'vtr_reg_basic' | |
}, | |
{ | |
name: 'Basic_odin with VTR_ENABLE_DEBUG_LOGGING', | |
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on -DWITH_ODIN=on', | |
suite: 'vtr_reg_basic_odin' | |
}, | |
{ | |
name: 'Strong', | |
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on', | |
suite: 'vtr_reg_strong' | |
}, | |
{ | |
name: 'Strong_odin', | |
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_ODIN=on', | |
suite: 'vtr_reg_strong_odin' | |
}, | |
{ | |
name: 'Valgrind Memory', | |
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_ODIN=on', | |
suite: 'vtr_reg_valgrind_small' | |
} | |
] | |
name: 'R: ${{ matrix.name }}' | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.10.10 | |
- uses: actions/checkout@v3 | |
- run: ./.github/scripts/install_dependencies.sh | |
- uses: hendrikmuhs/[email protected] | |
- name: Test | |
env: | |
CMAKE_PARAMS: ${{ matrix.params }} | |
run: | | |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
./.github/scripts/build.sh | |
./run_reg_test.py ${{ matrix.suite }} -show_failures -j2 | |
- name: Upload regression run files | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{matrix.name}}_run_files | |
path: | | |
vtr_flow/**/*.out | |
vtr_flow/**/*.blif | |
vtr_flow/**/*.p | |
vtr_flow/**/*.net | |
vtr_flow/**/*.r | |
- name: Upload regression results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{matrix.name}}_results | |
path: | | |
vtr_flow/**/*.log | |
vtr_flow/**/parse_results*.txt | |
Sanitized: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: [ | |
{ | |
name: 'Basic', | |
params: '-DVTR_ASSERT_LEVEL=3 -DVTR_ENABLE_SANITIZE=on -DVTR_IPO_BUILD=off -DWITH_BLIFEXPLORER=on -DWITH_ODIN=on', | |
suite: 'vtr_reg_basic_odin' | |
} | |
#- { name: 'Strong', suite: 'vtr_reg_strong' } # SKIP Too long to run on GitHub Actions (max 6h) | |
] | |
name: 'S: ${{ matrix.name }}' | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.10.10 | |
- uses: actions/checkout@v3 | |
- run: ./.github/scripts/install_dependencies.sh | |
- uses: hendrikmuhs/[email protected] | |
- name: Test | |
env: | |
CMAKE_PARAMS: ${{ matrix.params }} | |
BUILD_TYPE: debug | |
LSAN_OPTIONS: 'exitcode=42' #Use a non-standard exit code to ensure LSAN errors are detected | |
run: | | |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
./.github/scripts/build.sh | |
# We skip QoR since we are only checking for errors in sanitizer runs | |
./run_reg_test.py ${{ matrix.suite }} -show_failures -j2 -skip_qor | |
Parmys: | |
name: 'Parmys Basic Test' | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.10.10 | |
- uses: actions/checkout@v3 | |
- run: ./.github/scripts/install_dependencies.sh | |
- uses: hendrikmuhs/[email protected] | |
- name: Test | |
env: | |
CMAKE_PARAMS: '-DVTR_IPO_BUILD=off' | |
BUILD_TYPE: debug | |
run: | | |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
./.github/scripts/build.sh | |
./run_reg_test.py parmys_reg_basic -show_failures -j2 | |
ODINII: | |
name: 'ODIN-II Basic Test' | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.10.10 | |
- uses: actions/checkout@v3 | |
- run: ./.github/scripts/install_dependencies.sh | |
- uses: hendrikmuhs/[email protected] | |
- name: Test | |
env: | |
CMAKE_PARAMS: '-DVTR_ASSERT_LEVEL=3 -DVTR_ENABLE_SANITIZE=on -DVTR_IPO_BUILD=off -DWITH_BLIFEXPLORER=on -DWITH_ODIN=on' | |
BUILD_TYPE: debug | |
run: | | |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
./.github/scripts/build.sh | |
./run_reg_test.py odin_reg_basic -show_failures -j2 | |
VQM2BLIF: | |
name: 'VQM2BLIF Basic Tests' | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.10.10 | |
- uses: actions/checkout@v3 | |
- run: ./.github/scripts/install_dependencies.sh | |
- uses: hendrikmuhs/[email protected] | |
- name: Test | |
env: | |
BUILD_TYPE: release | |
run: | | |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
./.github/scripts/build.sh | |
./utils/vqm2blif/test/scripts/test_vqm2blif.sh | |
Compatibility: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { name: 'GCC 9 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-9 && CXX=g++-9', } | |
- { name: 'GCC 10 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-10 && CXX=g++-10', } | |
- { name: 'GCC 11 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-11 && CXX=g++-11', } | |
- { name: 'GCC 12 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-12 && CXX=g++-12', } | |
- { name: 'Clang 11 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-11 && CXX=clang++-11', } | |
- { name: 'Clang 12 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-12 && CXX=clang++-12', } | |
- { name: 'Clang 13 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-13 && CXX=clang++-13', } | |
- { name: 'Clang 14 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-14 && CXX=clang++-14', } | |
name: 'B: ${{ matrix.name }}' | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.10.10 | |
- uses: actions/checkout@v3 | |
- run: ./.github/scripts/install_dependencies.sh | |
- uses: hendrikmuhs/[email protected] | |
- name: Test | |
env: | |
CMAKE_PARAMS: "-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_ODIN=on" | |
MATRIX_EVAL: ${{ matrix.eval }} | |
BUILD_TYPE: release | |
run: | | |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
./.github/scripts/build.sh | |
Coverity: | |
name: 'Coverity Scan' | |
needs: | |
- Build | |
- Format | |
- UniTests | |
- Warnings | |
- Regression | |
- Sanitized | |
- Parmys | |
- ODINII | |
- VQM2BLIF | |
- Compatibility | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.10.10 | |
- uses: actions/checkout@v3 | |
- run: ./.github/scripts/install_dependencies.sh | |
- uses: hendrikmuhs/[email protected] | |
- name: Test | |
env: | |
CMAKE_PARAMS: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on' | |
_COVERITY_URL: 'https://scan.coverity.com/download/linux64' | |
_COVERITY_MD5: 'd0d7d7df9d6609e578f85096a755fb8f' | |
run: | | |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
./.github/scripts/build.sh |