name: Alpine CI on: pull_request: push: schedule: - cron: 0 0 * * 0 jobs: build: if: "!contains(github.event.head_commit.message, '[skip alpine ci]')" container: alpine:3.20 runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Install dependencies run: |- apk update apk add \ argon2-dev \ clang \ cmake \ g++ \ git \ gnutls-dev \ libmaxminddb-dev \ libpq-dev \ libpsl-dev \ mariadb-dev \ mold \ openldap-dev \ openssl-dev \ pcre2-dev \ perl \ pkgconf \ re2-dev \ samurai \ sqlite-dev - 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 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 --runasroot strategy: fail-fast: false matrix: compiler: - cc: clang cxx: clang++ - cc: gcc cxx: g++ socketengine: - epoll - poll - select