name: C/C++ CI on: push: branches: [ master, feature/* ] pull_request: branches: [ master ] jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macos-latest] configure_args: - >- --enable-html-matrix=no --enable-parallel=no --enable-pytest=no --enable-shared=yes --enable-silent-rules --enable-static=yes --enable-usrp=no --enable-winradio=no --with-cxx-binding=no --with-indi=no --with-libusb=no --with-lua-binding=no --with-perl-binding=no --with-python-binding=no --with-readline=no --with-tcl-binding=no --with-xml-support=no - >- --enable-html-matrix=yes --enable-parallel=yes --enable-pytest=yes --enable-shared=yes --enable-silent-rules --enable-static=yes --enable-usrp=no --enable-winradio=yes --with-cxx-binding=yes --with-indi=yes --with-libusb=yes --with-lua-binding=yes --with-perl-binding=yes --with-python-binding=yes --with-readline=yes --with-tcl-binding=yes --with-xml-support=yes steps: - uses: actions/checkout@v4 - name: Install dependencies on Linux if: runner.os == 'Linux' run: | sudo apt update sudo apt install libusb-1.0-0-dev sudo apt install libgd-dev sudo apt install libgpiod-dev sudo apt install libindi-dev libnova-dev sudo apt install grep sudo apt install python3-dev python3-pytest sudo apt install lua5.4 liblua5.4-dev libperl-dev tcl-dev - name: Install dependencies on macOS if: runner.os == 'macOS' run: | brew install autoconf brew install automake brew install libnova brew install libtool brew install grep brew install swig brew install tcl-tk - name: bootstrap run: ./bootstrap - name: Suppress -Winitializer-overrides on macOS if: runner.os == 'macOS' run: | export CFLAGS="$CFLAGS -Wno-initializer-overrides" export CXXFLAGS="$CXXFLAGS -Wno-initializer-overrides" - name: README Debug run: grep README Makefile.am - name: configure if: runner.os != 'macOS' run: ./configure ${{ matrix.configure_args }} - name: configure on macOS if: runner.os == 'macOS' run: ./configure ${{ matrix.configure_args }} --with-indi=detect --without-lua-binding PYTHON=/opt/homebrew/bin/python3 - name: make run: make -j 4 V=0 --no-print-directory - name: make distcheck if: runner.os != 'macOS' run: make distcheck V=0 --no-print-directory AM_DISTCHECK_CONFIGURE_FLAGS="${{ matrix.configure_args }} --without-perl-binding" - name: make distcheck on macOS if: runner.os == 'macOS' run: make distcheck V=0 --no-print-directory AM_DISTCHECK_CONFIGURE_FLAGS="${{ matrix.configure_args }} --with-indi=detect --without-perl-binding --without-lua-binding --without-tcl-binding PYTHON=/opt/homebrew/bin/python3"