Add simple CI using github actions.
authorMarcelina Kościelnicka <mwk@0x04.net>
Wed, 17 Mar 2021 18:32:50 +0000 (19:32 +0100)
committerMarcelina Kościelnicka <mwk@0x04.net>
Thu, 18 Mar 2021 21:27:45 +0000 (22:27 +0100)
.github/workflows/test.yml [new file with mode: 0644]

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644 (file)
index 0000000..401589c
--- /dev/null
@@ -0,0 +1,87 @@
+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