name: macOS CI on: pull_request: push: schedule: - cron: 0 0 * * 0 jobs: build: if: "!contains(github.event.head_commit.message, '[skip macos ci]')" runs-on: macos-14 env: HOMEBREW_NO_AUTO_UPDATE: 1 HOMEBREW_NO_INSTALL_CLEANUP: 1 HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 steps: - uses: actions/checkout@v6 - name: Prepare build environment run: |- echo "CPPFLAGS=-I$(brew --prefix)/include" >> $GITHUB_ENV echo "LDFLAGS=-L$(brew --prefix)/lib" >> $GITHUB_ENV - name: Install dependencies run: |- brew update || true for PACKAGE in argon2 cmake gnutls libmaxminddb libpq libpsl mysql-client ninja openssl openldap pcre2 pkg-config re2 sqlite tre do brew install $PACKAGE || brew upgrade $PACKAGE BREW_PREFIX=$(brew --prefix $PACKAGE) export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH:$BREW_PREFIX"; if [ -d "$BREW_PREFIX/bin" ] then export PATH="$PATH:$BREW_PREFIX/bin" fi if [ -d "$BREW_PREFIX/lib/pkgconfig" ] then export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_PREFIX/lib/pkgconfig" fi done echo "CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH" >> $GITHUB_ENV echo "PATH=$PATH" >> $GITHUB_ENV echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH" >> $GITHUB_ENV - name: Enable extra modules run: |- ./modulemanager extra enable geo_maxmind hash_argon2 hash_gnutls ldap log_syslog mysql pgsql regex_pcre2 regex_posix regex_re2 regex_tre rehashsignal sqlite3 ssl_gnutls ssl_openssl - name: Run CMake run: |- cmake -B "build" \ -D "CMAKE_BUILD_TYPE=Debug" \ -D "AUTO_ENABLE_EXTRAS=OFF" \ -D "SOCKET_ENGINE=${{ matrix.socketengine }}" \ -G "Ninja" \ -Wdeprecated \ -Wdev - name: Build and install env: VERBOSE: ${{ runner.debug }} run: |- ninja -C "build" ${{ runner.debug == '1' && '-v' || '' }} install - name: Run run: |- touch ./run/conf/inspircd.conf ./run/inspircd start strategy: fail-fast: false matrix: socketengine: - kqueue - poll - select