name: Ubuntu CI on: pull_request: push: schedule: - cron: '0 0 * * 0' jobs: build: if: "!contains(github.event.head_commit.message, '[skip ubuntu ci]')" runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v6 - name: Install dependencies run: |- sudo apt-get update --assume-yes sudo apt-get install --assume-yes --no-install-recommends \ clang \ cmake \ g++ \ git \ libargon2-dev \ libgnutls28-dev \ libldap2-dev \ libmaxminddb-dev \ libmysqlclient-dev \ libpcre2-dev \ libpq-dev \ libpsl-dev \ libre2-dev \ libsqlite3-dev \ libssl-dev \ libtre-dev \ ninja-build \ pkg-config - 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 env: CC: ${{ matrix.compiler.cc }} CXX: ${{ matrix.compiler.cxx }} 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: compiler: - cc: clang cxx: clang++ - cc: gcc cxx: g++ socketengine: - epoll - poll - select