name: C/C++ CI on: [push, pull_request] jobs: build-ubuntu: name: Ubuntu/GCC build runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: deps run: | sudo apt install libncurses5-dev libreadline-dev nettle-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: autogen run: ./autogen.sh - name: asio run: | wget https://github.com/aberaud/asio/archive/b2b7a1c166390459e1c169c8ae9ef3234b361e3f.tar.gz \ && tar -xvf b2b7a1c166390459e1c169c8ae9ef3234b361e3f.tar.gz && cd asio-b2b7a1c166390459e1c169c8ae9ef3234b361e3f/asio \ && ./autogen.sh && ./configure --prefix=/usr --without-boost --disable-examples --disable-tests \ && sudo make install \ && cd ../../ && rm -rf asio* - name: configure run: ./configure - name: make run: make - name: make check run: make check build-ubuntu-minimal: name: Ubuntu/GCC minimal build runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: deps run: | sudo apt install libncurses5-dev libreadline-dev nettle-dev \ libgnutls28-dev libcppunit-dev libmsgpack-dev libargon2-0-dev - name: cmake 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: make run: cd build && make build-macos: name: macOS/Clang build runs-on: macos-11 steps: - uses: actions/checkout@v3 - name: deps 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/e0a261dd8488246a3cb8bbb3ea781ea5139c3c94.tar.gz ls -l && tar -xzf e0a261dd8488246a3cb8bbb3ea781ea5139c3c94.tar.gz cd restinio-e0a261dd8488246a3cb8bbb3ea781ea5139c3c94/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: cmake 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 - name: make run: cd build && make