diff options
Diffstat (limited to '.github')
-rwxr-xr-x | .github/ci/build_interchange.sh | 90 | ||||
-rw-r--r-- | .github/workflows/interchange_ci.yml | 76 |
2 files changed, 118 insertions, 48 deletions
diff --git a/.github/ci/build_interchange.sh b/.github/ci/build_interchange.sh index 591494d8..d20dba67 100755 --- a/.github/ci/build_interchange.sh +++ b/.github/ci/build_interchange.sh @@ -1,48 +1,52 @@ #!/bin/bash # Install capnproto libraries -curl -O https://capnproto.org/capnproto-c++-0.8.0.tar.gz -tar zxf capnproto-c++-0.8.0.tar.gz -pushd capnproto-c++-0.8.0 -./configure -make -j`nproc` check -sudo make install -popd +function build_capnp { + curl -O https://capnproto.org/capnproto-c++-0.8.0.tar.gz + tar zxf capnproto-c++-0.8.0.tar.gz + pushd capnproto-c++-0.8.0 + ./configure + make -j`nproc` check + sudo make install + popd + + git clone https://github.com/capnproto/capnproto-java.git + pushd capnproto-java + make -j`nproc` + sudo make install + popd +} # Install latest Yosys -git clone https://github.com/YosysHQ/yosys.git -pushd yosys -make -j`nproc` -sudo make install -popd - -# Install capnproto java -git clone https://github.com/capnproto/capnproto-java.git -pushd capnproto-java -make -sudo make install -popd - -RAPIDWRIGHT_PATH="`pwd`/RapidWright" -INTERCHANGE_SCHEMA_PATH="`pwd`/3rdparty/fpga-interchange-schema/interchange" -PYTHON_INTERCHANGE_PATH="`pwd`/python-fpga-interchange" -PYTHON_INTERCHANGE_TAG="v0.0.4" - -# Install python-fpga-interchange libraries -git clone -b $PYTHON_INTERCHANGE_TAG https://github.com/SymbiFlow/python-fpga-interchange.git $PYTHON_INTERCHANGE_PATH -pushd $PYTHON_INTERCHANGE_PATH -git submodule update --init --recursive -python3 -m pip install -r requirements.txt -popd - -# Install RapidWright -git clone https://github.com/Xilinx/RapidWright.git $RAPIDWRIGHT_PATH -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 -popd +function build_yosys { + git clone https://github.com/YosysHQ/yosys.git + pushd yosys + make -j`nproc` + sudo make install + popd +} + + +function get_dependencies { + # Install python-fpga-interchange libraries + git clone -b ${PYTHON_INTERCHANGE_TAG} https://github.com/SymbiFlow/python-fpga-interchange.git ${PYTHON_INTERCHANGE_PATH} + pushd ${PYTHON_INTERCHANGE_PATH} + git submodule update --init --recursive + python3 -m pip install -r requirements.txt + popd + + ## Install RapidWright + git clone https://github.com/Xilinx/RapidWright.git ${RAPIDWRIGHT_PATH} + pushd ${RAPIDWRIGHT_PATH} + make update_jars + popd +} + +function build_nextpnr { + build_capnp + 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 1ca42bb7..8b16d795 100644 --- a/.github/workflows/interchange_ci.yml +++ b/.github/workflows/interchange_ci.yml @@ -3,9 +3,60 @@ name: FPGA interchange CI tests on: [push, pull_request] jobs: + Build-yosys: + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@v2 + with: + submodules: recursive + + - uses: actions/setup-python@v2 + + - name: Install + run: | + 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: ccache + uses: hendrikmuhs/ccache-action@v1 + + - name: Execute build yosys script + run: | + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" + source ./.github/ci/build_interchange.sh + build_yosys + + Build-nextpnr: + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@v2 + with: + submodules: recursive + + - uses: actions/setup-python@v2 + + - name: Install + run: | + sudo apt-get update + sudo apt-get install git make cmake libboost-all-dev python3-dev libeigen3-dev tcl-dev clang bison flex swig - Run-tests: + - name: ccache + uses: hendrikmuhs/ccache-action@v1 + + - name: Execute build interchange script + run: | + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" + source ./.github/ci/build_interchange.sh + build_nextpnr + + Run-Tests: runs-on: ubuntu-latest + needs: [Build-yosys, Build-nextpnr] + strategy: + matrix: + device: [xc7a35t, xc7a100t, xc7a200t, xc7z010] steps: - uses: actions/checkout@v2 @@ -19,11 +70,26 @@ 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 - run: stdbuf -i0 -o0 -e0 ./.github/ci/build_interchange.sh + - name: ccache + uses: hendrikmuhs/ccache-action@v1 + + - name: Execute build interchange script + env: + RAPIDWRIGHT_PATH: ${{ github.workspace }}/RapidWright + INTERCHANGE_SCHEMA_PATH: ${{ github.workspace }}/3rdparty/fpga-interchange-schema/interchange + PYTHON_INTERCHANGE_PATH: ${{ github.workspace }}/python-fpga-interchange + PYTHON_INTERCHANGE_TAG: v0.0.4 + + run: | + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" + source ./.github/ci/build_interchange.sh + build_yosys && build_nextpnr && get_dependencies - name: Run tests + env: + DEVICE: ${{ matrix.device }} run: | cd build - make all-fpga_interchange-archcheck-tests -j`nproc` - 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` |