diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml new file mode 100644 index 0000000..dc0615f --- /dev/null +++ b/.forgejo/workflows/test.yml @@ -0,0 +1,73 @@ +# SPDX-License-Identifier: LGPL-3.0-or-later +# See Notices.txt for copyright information +on: [push, pull_request] + +jobs: + test: + runs-on: debian-12 + steps: + - uses: https://code.forgejo.org/actions/checkout@v3 + with: + fetch-depth: 0 + - run: | + scripts/check-copyright.sh + - run: | + apt-get update -qq + apt-get install -qq \ + bison \ + build-essential \ + ccache \ + clang \ + cvc5 \ + flex \ + gawk \ + git \ + libboost-filesystem-dev \ + libboost-python-dev \ + libboost-system-dev \ + libffi-dev \ + libreadline-dev \ + lld \ + pkg-config \ + python3 \ + python3-click \ + tcl-dev \ + z3 \ + zlib1g-dev \ + - name: Cache ccache dir + uses: https://code.forgejo.org/actions/cache@v3 + with: + path: .ccache + key: ${{ runner.os }}-${{ github.sha }} + restore-keys: | + ${{ runner.os }}- + - name: Setup ccache + run: | + ccache --set-config=cache_dir="${{ github.workspace }}/.ccache" + ccache --set-config=compression=true + ccache --set-config=compression_level=6 + ccache -M 4G + ccache -z + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" + echo "$PATH" >> "$GITHUB_PATH" + - run: | + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.80.1 + source "$HOME/.cargo/env" + echo "$PATH" >> "$GITHUB_PATH" + - run: | + git clone --depth=1 --branch=yosys-0.45 https://github.com/YosysHQ/sby.git + make -C sby install + - run: | + git clone --depth=1 --recursive --branch=0.45 https://github.com/YosysHQ/yosys.git + make -C yosys -j2 + make -C yosys install + - run: | + wget -O firrtl.tar.gz https://github.com/llvm/circt/releases/download/firtool-1.86.0/firrtl-bin-linux-x64.tar.gz + sha256sum -c - <<<'bf6f4ab18ae76f135c944efbd81e25391c31c1bd0617c58ab0592640abefee14 firrtl.tar.gz' + tar -xvaf firrtl.tar.gz + export PATH="$(realpath firtool-1.86.0/bin):$PATH" + echo "$PATH" >> "$GITHUB_PATH" + - uses: https://github.com/Swatinem/rust-cache@v2 + with: + save-if: ${{ github.ref == 'refs/heads/master' }} + - run: cargo test