name: test on: # Every push onto the main branch triggers a retest. push: branches: - master # All pull_requests trigger a retest. pull_request: workflow_dispatch: jobs: mac: strategy: fail-fast: false matrix: libvvp: [true] suffix: [true] runs-on: macos-15-intel name: 🍏 macOS${{ matrix.libvvp && ' +libvvp' || '' }}${{ matrix.suffix && ' +suffix' || '' }} steps: - uses: actions/checkout@v6 - name: Install dependencies run: | brew install bison - name: Build, check and install run: | export PATH="/usr/local/opt/bison/bin:$PATH" CONFIG_OPTS="--enable-libveriuser" if [ "${{ matrix.libvvp }}" = "true" ]; then CONFIG_OPTS="$CONFIG_OPTS --enable-libvvp" fi if [ "${{ matrix.suffix }}" = "true" ]; then CONFIG_OPTS="$CONFIG_OPTS --enable-suffix" fi autoconf ./configure $CONFIG_OPTS make -j$(nproc) check sudo make install - name: Test run: | make check-installed lin: strategy: fail-fast: false matrix: os: ['22.04', '24.04'] # libvvp: [false, true] # suffix: [false, true] runs-on: ubuntu-${{ matrix.os }} name: 🐧 Ubuntu ${{ matrix.os }}${{ matrix.libvvp && ' +libvvp' || '' }}${{ matrix.suffix && ' +suffix' || '' }} steps: - uses: actions/checkout@v6 - name: Install dependencies run: | sudo apt update -qq sudo apt install -y make g++ git bison flex gperf libreadline-dev libbz2-dev autoconf python3-venv python3 -m venv .venv . .venv/bin/activate pip install --upgrade pip pip install -r Documentation/requirements.txt - name: Build, check and install run: | CONFIG_OPTS="--enable-libveriuser" if [ "${{ matrix.libvvp }}" = "true" ]; then CONFIG_OPTS="$CONFIG_OPTS --enable-libvvp" fi if [ "${{ matrix.suffix }}" = "true" ]; then CONFIG_OPTS="$CONFIG_OPTS --enable-suffix" fi autoconf ./configure $CONFIG_OPTS make -j$(nproc) check sudo make install - name: Test run: make check-installed - name: Documentation run: | . .venv/bin/activate cd Documentation make html win: runs-on: windows-latest strategy: fail-fast: false matrix: msystem: [MINGW64, UCRT64, CLANG64] # libvvp: [false, true] # suffix: [false, true] include: - { msystem: MINGW64, env: x86_64 } - { msystem: UCRT64, env: ucrt-x86_64 } - { msystem: CLANG64, env: clang-x86_64 } name: 🟪 ${{ matrix.msystem }}${{ matrix.libvvp && ' +libvvp' || '' }}${{ matrix.suffix && ' +suffix' || '' }} defaults: run: shell: msys2 {0} env: MINGW_ARCH: ${{ matrix.msystem }} steps: - run: git config --global core.autocrlf input shell: bash - uses: actions/checkout@v6 - uses: msys2/setup-msys2@v2 with: msystem: ${{ matrix.msystem }} update: true install: > git base-devel python-pip mingw-w64-${{ matrix.env }}-perl - uses: actions/setup-python@v6 with: python-version: '>=3.5' - name: Build and check run: | cd msys2 CONFIG_OPTS="" if [ ${{ matrix.msystem }} != "CLANG64" ] ; then CONFIG_OPTS="$CONFIG_OPTS --enable-libveriuser" fi if [ "${{ matrix.libvvp }}" = "true" ] ; then CONFIG_OPTS="$CONFIG_OPTS --enable-libvvp" fi if [ "${{ matrix.suffix }}" = "true" ]; then CONFIG_OPTS="$CONFIG_OPTS --enable-suffix" fi export IVL_CONFIG_OPTIONS="$CONFIG_OPTS" makepkg-mingw --noconfirm --noprogressbar -sCLf - name: Install run: pacman -U --noconfirm msys2/*.zst - name: Test run: | make check-installed - uses: actions/upload-artifact@v7 with: name: 🟪 ${{ matrix.msystem }}${{ matrix.libvvp && ' +libvvp' || '' }} path: msys2/*.zst