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 runs-on: macos-13 name: '๐Ÿ macOS' steps: - uses: actions/checkout@v4 - name: Install dependencies run: | brew install bison pip3 install --break-system-packages docopt - name: Build, check and install run: | export PATH="/usr/local/opt/bison/bin:$PATH" autoconf ./configure make -j$(nproc) check sudo make install - name: Test run: ./.github/test.sh lin: strategy: fail-fast: false matrix: os: [ '20.04', '22.04', '24.04' ] runs-on: ubuntu-${{ matrix.os }} name: '๐Ÿง Ubuntu ${{ matrix.os }}' steps: - uses: actions/checkout@v4 - name: Install dependencies run: | sudo apt update -qq sudo apt install -y make g++ git bison flex gperf libreadline-dev libbz2-dev autoconf python3-sphinx python3-docopt - name: Build, check and install run: | autoconf ./configure make -j$(nproc) check sudo make install - name: Test run: ./.github/test.sh - name: Documentation run: | cd Documentation make html win: runs-on: windows-latest strategy: fail-fast: false matrix: include: [ { msystem: MINGW64, arch: x86_64 } ] name: ๐ŸŸช ${{ matrix.msystem}} ยท ${{ matrix.arch }} defaults: run: shell: msys2 {0} env: MINGW_ARCH: ${{ matrix.msystem }} steps: - run: git config --global core.autocrlf input shell: bash - uses: actions/checkout@v4 - uses: msys2/setup-msys2@v2 with: msystem: ${{ matrix.msystem }} update: true install: > git base-devel gperf python-pip mingw-w64-${{ matrix.arch }}-toolchain - uses: actions/setup-python@v5 with: python-version: '>=3.5' - name: Build and check run: | cd msys2 makepkg-mingw --noconfirm --noprogressbar -sCLf - name: Install run: pacman -U --noconfirm msys2/*.zst - name: Test run: | ./.github/test.sh - uses: actions/upload-artifact@v4 with: name: ${{ matrix.msystem }}-${{ matrix.arch }} path: msys2/*.zst