aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.cirrus.yml3
-rw-r--r--.github/ci/build_mistral.sh24
-rw-r--r--.github/workflows/mistral_ci.yml33
3 files changed, 58 insertions, 2 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index 99c70ffd..86edee59 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -6,13 +6,12 @@ task:
dockerfile: .cirrus/Dockerfile.ubuntu20.04
submodule_script: git submodule sync --recursive && git submodule update --init --recursive
- build_script: mkdir build && cd build && cmake .. -DARCH=all+alpha -DOXIDE_INSTALL_PREFIX=$HOME/.cargo -DBUILD_TESTS=on -DBUILD_GUI=on -DWERROR=on && make -j3
+ build_script: mkdir build && cd build && cmake .. -DARCH='ecp5;generic;gowin;ice40;machxo2;nexus' -DOXIDE_INSTALL_PREFIX=$HOME/.cargo -DBUILD_TESTS=on -DBUILD_GUI=on -DWERROR=on && make -j3
test_generic_script: cd build && ./nextpnr-generic-test
flow_test_generic_script: export NPNR=$(pwd)/build/nextpnr-generic && cd tests/generic/flow && ./run.sh
test_ice40_script: cd build && ./nextpnr-ice40-test
smoketest_ice40_script: export NEXTPNR=$(pwd)/build/nextpnr-ice40 && cd ice40/smoketest/attosoc && ./smoketest.sh
test_ecp5_script: cd build && ./nextpnr-ecp5-test
- test_fpga_interchange_script: cd build && ./nextpnr-fpga_interchange-test
smoketest_generic_script: export NEXTPNR=$(pwd)/build/nextpnr-generic && cd generic/examples && ./simple.sh && ./simtest.sh
regressiontest_ice40_script: make -j $(nproc) -C tests/ice40/regressions NPNR=$(pwd)/build/nextpnr-ice40
regressiontest_ecp5_script: make -j $(nproc) -C tests/ecp5/regressions NPNR=$(pwd)/build/nextpnr-ecp5
diff --git a/.github/ci/build_mistral.sh b/.github/ci/build_mistral.sh
new file mode 100644
index 00000000..7046462f
--- /dev/null
+++ b/.github/ci/build_mistral.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+function get_dependencies {
+ # Fetch mistral
+ mkdir -p ${MISTRAL_PATH}
+ git clone --recursive https://github.com/Ravenslofty/mistral.git ${MISTRAL_PATH}
+ pushd ${MISTRAL_PATH}
+ git reset --hard ${MISTRAL_REVISION}
+ popd
+}
+
+function build_nextpnr {
+ mkdir build
+ pushd build
+ cmake .. -DARCH=mistral -DMISTRAL_ROOT=${MISTRAL_PATH}
+ make nextpnr-mistral -j`nproc`
+ popd
+}
+
+function run_archcheck {
+ pushd build
+ ./nextpnr-mistral --mistral ${MISTRAL_PATH} --device 5CEBA2F17A7 --test
+ popd
+}
diff --git a/.github/workflows/mistral_ci.yml b/.github/workflows/mistral_ci.yml
new file mode 100644
index 00000000..877e374d
--- /dev/null
+++ b/.github/workflows/mistral_ci.yml
@@ -0,0 +1,33 @@
+name: Mistral CI tests
+
+on: [push, pull_request]
+
+jobs:
+ 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 lzma-dev clang bison flex swig
+
+ - name: ccache
+ uses: hendrikmuhs/ccache-action@v1
+
+ - name: Execute build nextpnr
+ env:
+ MISTRAL_PATH: ${{ github.workspace }}/deps/mistral
+ MISTRAL_REVISION: 7d4e6d2cca1ec05de3be0c9fef6acaed8089d329
+ run: |
+ export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
+ source ./.github/ci/build_mistral.sh
+ get_dependencies
+ build_nextpnr
+ run_archcheck