Merge branch 'master' into S10_architecture_file #6851
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: 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/ccache-action@v1.2 | |
- 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/ccache-action@v1.2 | |
- 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/ccache-action@v1.2 | |
- 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/ccache-action@v1.2 | |
- 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/ccache-action@v1.2 | |
- 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/ccache-action@v1.2 | |
- 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/ccache-action@v1.2 | |
- 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/ccache-action@v1.2 | |
- 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/ccache-action@v1.2 | |
- 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 |