--- /dev/null
+name: Build and run tests
+
+on: [push, pull_request]
+
+jobs:
+ test-linux:
+ runs-on: ubuntu-latest
+ steps:
+
+ - uses: actions/checkout@v2
+
+ - name: Install dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install g++ gperf build-essential bison flex libreadline-dev gawk tcl-dev libffi-dev git graphviz xdot pkg-config python python3 libboost-system-dev libboost-python-dev libboost-filesystem-dev zlib1g-dev
+
+ - name: Get iverilog
+ run: |
+ git clone git://github.com/steveicarus/iverilog.git
+
+ - name: Cache iverilog
+ id: cache-iverilog
+ uses: actions/cache@v2
+ with:
+ path: iverilog-bin
+ key: ${{ runner.os }}-${{ hashFiles('iverilog/.git/refs/heads/master') }}
+
+ - name: Build iverilog
+ if: steps.cache-iverilog.outputs.cache-hit != 'true'
+ run: |
+ mkdir iverilog-bin
+ cd iverilog
+ autoconf
+ CC=gcc CXX=g++ ./configure --prefix=$PWD/../iverilog-bin
+ make -j$(nproc)
+ make install
+
+ - name: Build yosys
+ run: |
+ make -j$(nproc)
+
+ - name: Run tests
+ run: |
+ PATH=$PWD/iverilog-bin/bin:$PATH make -j$(nproc) test
+
+ test-osx:
+ runs-on: macos-latest
+ steps:
+
+ - uses: actions/checkout@v2
+
+ - name: Install dependencies
+ run: |
+ brew update
+ brew tap Homebrew/bundle
+ brew bundle
+
+ - name: Get iverilog
+ run: |
+ git clone git://github.com/steveicarus/iverilog.git
+
+ - name: Cache iverilog
+ id: cache-iverilog
+ uses: actions/cache@v2
+ with:
+ path: iverilog-bin
+ key: ${{ runner.os }}-${{ hashFiles('iverilog/.git/refs/heads/master') }}
+
+ - name: Build iverilog
+ if: steps.cache-iverilog.outputs.cache-hit != 'true'
+ run: |
+ export PATH="$(brew --prefix bison)/bin:$PATH"
+ mkdir iverilog-bin
+ cd iverilog
+ autoconf
+ CC=gcc CXX=g++ ./configure --prefix=$PWD/../iverilog-bin
+ make -j$(sysctl -n hw.ncpu)
+ make install
+
+ - name: Build yosys
+ run: |
+ export PATH="$(brew --prefix bison)/bin:$PATH"
+ make -j$(sysctl -n hw.ncpu)
+
+ - name: Run tests
+ run: |
+ PATH=$PWD/iverilog-bin/bin:$PATH make -j$(sysctl -n hw.ncpu) test