iverilog/.github/workflows/test.yml

122 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
strategy:
fail-fast: false
matrix:
shell: [
mingw64,
msys2
]
build: [
manual,
pkgbuild
]
task: [
{
label: '🧊',
msystem: MINGW64,
arch: x86_64,
release: false,
},
{
label: '🟪',
msystem: MINGW64,
arch: x86_64,
release: true,
},
{
label: '🟪',
msystem: MINGW32,
arch: i686,
release: true,
}
]
name: ${{ matrix.task.label }} ${{ matrix.task.msystem}} · ${{ matrix.shell }} · ${{ matrix.build }}
defaults:
run:
shell: ${{ matrix.shell }} {0}
env:
MINGW_INSTALLS: ${{ matrix.task.msystem }}
MSYSTEM: ${{ matrix.task.msystem }}
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: ${{ matrix.task.release }}
msystem: ${{ matrix.task.msystem }}
install: >
git
base-devel
mingw-w64-${{ matrix.task.arch }}-toolchain
update: true
- name: 🧊 Build, install and check
if: matrix.build == 'manual'
run: |
wrap() { echo "::group::$@"; "$@"; echo '::endgroup::'; }
wrap ./autoconf.sh
wrap ./configure
wrap mingw32-make install
which iverilog
wrap mingw32-make check
- name: 🟪 Build and check
if: matrix.build == 'pkgbuild'
run: |
cd msys2
makepkg-mingw --noconfirm --noprogressbar -sCLf
- name: 🟪 Install
if: matrix.build == 'pkgbuild'
run: pacman -U --noconfirm msys2/*.zst
- name: Test
run: ./.github/test.sh