From 0492c55efdcc374ed222c7aefd56322347295f0e Mon Sep 17 00:00:00 2001 From: Lofty Date: Mon, 3 Mar 2025 13:44:33 +0000 Subject: [PATCH] ci: test that BUILD_RUST=ON builds (#1459) --- .github/ci/build_rust.sh | 26 ++++++++++++++++++++++++++ .github/workflows/arch_ci.yml | 4 ++-- 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 .github/ci/build_rust.sh diff --git a/.github/ci/build_rust.sh b/.github/ci/build_rust.sh new file mode 100644 index 00000000..63531a92 --- /dev/null +++ b/.github/ci/build_rust.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +function get_dependencies { + : +} + +function build_nextpnr { + mkdir build + pushd build + cmake .. -DARCH=generic -DWERROR=on -DBUILD_RUST=on + make nextpnr-generic -j`nproc` + popd +} + +function run_tests { + export PATH=${GITHUB_WORKSPACE}/.yosys/bin:$PATH + ( export NPNR=$(pwd)/build/nextpnr-generic && cd tests/generic/flow && ./run.sh ) +} + +function run_archcheck { + pushd build + # This isn't strictly necessary, since it's tested by build_generic.sh + # but it can't hurt to run it anyway. + ./nextpnr-generic --uarch example --test + popd +} diff --git a/.github/workflows/arch_ci.yml b/.github/workflows/arch_ci.yml index 337d4d63..9316b147 100644 --- a/.github/workflows/arch_ci.yml +++ b/.github/workflows/arch_ci.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: false matrix: - arch: [mistral, ice40, ecp5, generic, nexus, machxo2, himbaechel] + arch: [mistral, ice40, ecp5, generic, nexus, machxo2, himbaechel, rust] runs-on: ubuntu-latest env: DEPS_PATH: ${{ github.workspace }}/deps @@ -30,7 +30,7 @@ jobs: - name: Install run: | sudo apt-get update - sudo apt-get install git make cmake libboost-all-dev python3-dev pypy3 libeigen3-dev tcl-dev lzma-dev libftdi-dev clang bison flex swig qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools iverilog libreadline-dev liblzma-dev + sudo apt-get install git make cmake libboost-all-dev python3-dev pypy3 libeigen3-dev tcl-dev lzma-dev libftdi-dev clang bison flex swig qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools iverilog libreadline-dev liblzma-dev cargo rustc - name: Cache yosys installation uses: actions/cache@v4