diff --git a/.github/ci/build_interchange.sh b/.github/ci/build_interchange.sh index 591494d8..3cd77ea4 100755 --- a/.github/ci/build_interchange.sh +++ b/.github/ci/build_interchange.sh @@ -19,7 +19,7 @@ popd # Install capnproto java git clone https://github.com/capnproto/capnproto-java.git pushd capnproto-java -make +make -j`nproc` sudo make install popd @@ -41,8 +41,8 @@ pushd $RAPIDWRIGHT_PATH make update_jars popd - mkdir build pushd build cmake .. -DARCH=fpga_interchange -DRAPIDWRIGHT_PATH=$RAPIDWRIGHT_PATH -DINTERCHANGE_SCHEMA_PATH=$INTERCHANGE_SCHEMA_PATH -DPYTHON_INTERCHANGE_PATH=$PYTHON_INTERCHANGE_PATH +make nextpnr-fpga_interchange -j`nproc` popd diff --git a/.github/workflows/interchange_ci.yml b/.github/workflows/interchange_ci.yml index 0819aa07..3de87198 100644 --- a/.github/workflows/interchange_ci.yml +++ b/.github/workflows/interchange_ci.yml @@ -3,9 +3,11 @@ name: FPGA interchange CI tests on: [push, pull_request] jobs: - - Run-tests: + Run-Tests: runs-on: ubuntu-latest + strategy: + matrix: + device: [xc7a35t, xc7a100t, xc7a200t, xc7z010] steps: - uses: actions/checkout@v2 @@ -19,11 +21,14 @@ jobs: sudo apt-get update sudo apt-get install git make cmake libboost-all-dev python3-dev libeigen3-dev tcl-dev clang bison flex swig - - name: Execute build script + - name: Execute build interchange script run: stdbuf -i0 -o0 -e0 ./.github/ci/build_interchange.sh - name: Run tests + env: + DEVICE: ${{ matrix.device }} run: | cd build - make all-fpga_interchange-archcheck-tests - make all-fpga_interchange-tests -j`nproc` + make chipdb-$DEVICE-bin-check-test-data + make chipdb-$DEVICE-bin-check + make all-$DEVICE-tests -j`nproc` diff --git a/fpga_interchange/examples/chipdb.cmake b/fpga_interchange/examples/chipdb.cmake index 7b080d9c..60814845 100644 --- a/fpga_interchange/examples/chipdb.cmake +++ b/fpga_interchange/examples/chipdb.cmake @@ -367,6 +367,9 @@ function(generate_chipdb) ${CMAKE_CURRENT_SOURCE_DIR} ) -add_dependencies(all-${family}-archcheck-tests chipdb-${device}-bin-check-test-data chipdb-${device}-bin-check) + add_dependencies(all-${family}-archcheck-tests chipdb-${device}-bin-check-test-data chipdb-${device}-bin-check) + + # All tests targets for this device are added to this target + add_custom_target(all-${device}-tests) endfunction() diff --git a/fpga_interchange/examples/tests.cmake b/fpga_interchange/examples/tests.cmake index 34d7f3f1..115b4a36 100644 --- a/fpga_interchange/examples/tests.cmake +++ b/fpga_interchange/examples/tests.cmake @@ -262,6 +262,7 @@ function(add_interchange_test) add_custom_target(test-${family}-${name}-dcp DEPENDS ${dcp}) add_dependencies(all-${family}-tests test-${family}-${name}-dcp) + add_dependencies(all-${device}-tests test-${family}-${name}-dcp) endfunction() function(add_interchange_group_test)