iverilog/.github/workflows/test.yml

128 lines
2.5 KiB
YAML

name: test
on:
push:
pull_request:
jobs:
lin:
strategy:
fail-fast: false
matrix:
os: [
'18.04',
'20.04'
]
runs-on: ubuntu-${{ matrix.os }}
name: '🐧 Ubuntu ${{ matrix.os }}'
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt update -qq
sudo apt install -y make g++ git bison flex gperf libreadline-dev autoconf
- name: Build
run: |
autoconf
./configure
sudo make install
make check
- name: Test
run: ./.github/test.sh
win:
runs-on: windows-latest
name: '🧊 Windows'
defaults:
run:
shell: mingw64 {0}
steps:
- name: Setup
shell: bash
run: |
git config --global core.autocrlf input
echo "$(cygpath -w $(pwd)/.github/bin)" >> $GITHUB_PATH
- uses: actions/checkout@v2
- uses: msys2/setup-msys2@v2
with:
release: false
msystem: MINGW64
install: >
base-devel
mingw-w64-x86_64-toolchain
update: true
- name: Build, install and check
run: |
wrap() { echo "::group::$@"; "$@"; echo '::endgroup::'; }
wrap ./autoconf.sh
wrap ./configure
wrap make install
which iverilog
wrap make check
- name: Test
run: ./.github/test.sh
msys2:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include: [
{ msystem: MINGW64, arch: x86_64 },
{ msystem: MINGW32, arch: i686 }
]
name: '🟪 MSYS2 · ${{ matrix.msystem }}'
defaults:
run:
shell: msys2 {0}
env:
MINGW_INSTALLS: ${{ matrix.msystem }}
steps:
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.msystem }}
install: >
tcsh
git
base-devel
mingw-w64-${{ matrix.arch }}-toolchain
update: true
- name: Build
run: |
cd msys2
makepkg-mingw --noconfirm --noprogressbar -sCLf
- name: Install
run: pacman -U --noconfirm msys2/*.zst
- name: Test
run: |
git clone https://github.com/albertxie/iverilog-tutorial
cd iverilog-tutorial/code_samples
iverilog -o simple.vvp simple.v simple_tb.v
vvp simple.vvp
git clone git://github.com/steveicarus/ivtest.git
cd ivtest
./regress