name: C/C++ CI on: [push, pull_request] jobs: build-ubuntu: name: Ubuntu/GCC Autotools build runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Dependencies run: | sudo apt install libncurses5-dev libreadline-dev nettle-dev libasio-dev \ libgnutls28-dev libuv1-dev cython3 python3-dev python3-setuptools libcppunit-dev libjsoncpp-dev \ autotools-dev autoconf libfmt-dev libhttp-parser-dev libmsgpack-dev libargon2-0-dev - name: Configure run: | ./autogen.sh ./configure - name: Build run: make build-ubuntu-meson: name: Ubuntu/GCC Meson build runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Dependencies run: | sudo apt install meson ninja-build libncurses5-dev libreadline-dev nettle-dev libasio-dev \ libgnutls28-dev libuv1-dev cython3 python3-dev python3-setuptools libcppunit-dev libjsoncpp-dev \ libfmt-dev libhttp-parser-dev libmsgpack-dev libargon2-0-dev - name: Configure run: meson setup build . - name: Build run: cd build && ninja build-ubuntu-minimal: name: Ubuntu/GCC minimal build runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Dependencies run: | sudo apt install libncurses5-dev libreadline-dev nettle-dev libfmt-dev \ libgnutls28-dev libcppunit-dev libmsgpack-dev libargon2-0-dev - name: Configure run: | mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Debug \ -DOPENDHT_C=Off -DOPENDHT_TESTS=On -DOPENDHT_PEER_DISCOVERY=Off -DOPENDHT_PYTHON=Off \ -DOPENDHT_TOOLS=On -DOPENDHT_PROXY_SERVER=Off -DOPENDHT_PROXY_CLIENT=Off - name: Build run: cd build && make - name: Unit tests run: cd build && ./opendht_unit_tests build-macos: name: macOS/Clang build runs-on: macos-12 steps: - uses: actions/checkout@v3 - name: Dependencies run: | brew install msgpack-cxx asio gnutls nettle readline fmt jsoncpp argon2 openssl http-parser cppunit - name: restinio run: | mkdir restinio && cd restinio wget https://github.com/aberaud/restinio/archive/6fd08b65f6f15899dd0de3c801f6a5462b811c64.tar.gz ls -l && tar -xzf 6fd08b65f6f15899dd0de3c801f6a5462b811c64.tar.gz cd restinio-6fd08b65f6f15899dd0de3c801f6a5462b811c64/dev cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DRESTINIO_TEST=OFF -DRESTINIO_SAMPLE=OFF \ -DRESTINIO_INSTALL_SAMPLES=OFF -DRESTINIO_BENCH=OFF -DRESTINIO_INSTALL_BENCHES=OFF \ -DRESTINIO_FIND_DEPS=ON -DRESTINIO_ALLOW_SOBJECTIZER=Off -DRESTINIO_USE_BOOST_ASIO=none . make -j8 && sudo make install cd ../../.. && rm -rf restinio - name: Configure run: | mkdir build && cd build export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH" export LDFLAGS="-L/usr/local/opt/openssl@3/lib" export CPPFLAGS="-I/usr/local/opt/openssl@3/include" export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig" cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Debug \ -DOPENDHT_C=On -DOPENDHT_TESTS=On -DOPENDHT_PEER_DISCOVERY=On -DOPENDHT_PYTHON=Off \ -DOPENDHT_TOOLS=On -DOPENDHT_PROXY_SERVER=On -DOPENDHT_PROXY_CLIENT=On -DOPENDHT_PUSH_NOTIFICATIONS=On - name: Build run: cd build && make