Resubscribe on token change #1060
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: C/C++ CI | |
on: [push, pull_request] | |
jobs: | |
build-ubuntu: | |
name: Ubuntu/GCC Autotools build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Dependencies | |
run: | | |
sudo apt update && \ | |
sudo apt install libncurses5-dev libreadline-dev nettle-dev libasio-dev \ | |
libgnutls28-dev libuv1-dev python3-pip python3-dev python3-setuptools libcppunit-dev libjsoncpp-dev \ | |
autotools-dev autoconf libfmt-dev libmsgpack-dev libargon2-0-dev | |
- name: Cython | |
run: sudo pip3 install Cython | |
- name: llhttp | |
run: | | |
mkdir llhttp | |
wget https://github.com/nodejs/llhttp/archive/refs/tags/release/v9.2.0.tar.gz -O llhttp.tar.gz | |
tar -xzf llhttp.tar.gz -C llhttp --strip-components=1 | |
cd llhttp && cmake -DCMAKE_INSTALL_PREFIX=/usr . && make -j2 && sudo make install | |
cd ../ && rm -rf llhttp* | |
- name: expected-lite | |
run: | | |
sudo mkdir /usr/local/include/nonstd && \ | |
sudo wget https://raw.githubusercontent.com/martinmoene/expected-lite/master/include/nonstd/expected.hpp \ | |
-O /usr/local/include/nonstd/expected.hpp | |
- name: restinio | |
run: | | |
mkdir restinio && cd restinio | |
wget https://github.com/Stiffstream/restinio/releases/download/v.0.7.2/restinio-0.7.2.tar.bz2 | |
ls -l && tar -xjf restinio-0.7.2.tar.bz2 | |
cd restinio-0.7.2/dev | |
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DRESTINIO_TEST=Off -DRESTINIO_SAMPLE=Off -DRESTINIO_BENCHMARK=Off \ | |
-DRESTINIO_WITH_SOBJECTIZER=Off -DRESTINIO_DEP_STANDALONE_ASIO=system -DRESTINIO_DEP_LLHTTP=system \ | |
-DRESTINIO_DEP_FMT=system -DRESTINIO_DEP_EXPECTED_LITE=system . | |
sudo make install | |
cd ../../ && rm -rf restinio* | |
- name: Configure | |
run: | | |
./autogen.sh | |
./configure --enable-proxy-client | |
- name: Build | |
run: make | |
build-ubuntu-meson: | |
name: Ubuntu/GCC Meson build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Dependencies | |
run: | | |
sudo apt update && \ | |
sudo apt install ninja-build libncurses5-dev libreadline-dev nettle-dev libasio-dev \ | |
libgnutls28-dev libuv1-dev python3-dev python3-setuptools python3-pip \ | |
libcppunit-dev libjsoncpp-dev libfmt-dev libmsgpack-dev libargon2-0-dev | |
- name: Python dependencies | |
run: sudo pip3 install meson Cython | |
- 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@v4 | |
- name: Dependencies | |
run: | | |
sudo apt update && \ | |
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 -DBUILD_TESTING=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-15 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Dependencies | |
run: | | |
brew install msgpack-cxx asio gnutls nettle readline fmt jsoncpp argon2 openssl cppunit | |
- name: expected-lite | |
run: | | |
sudo mkdir -p /usr/local/include/nonstd && \ | |
sudo wget https://raw.githubusercontent.com/martinmoene/expected-lite/master/include/nonstd/expected.hpp \ | |
-O /usr/local/include/nonstd/expected.hpp | |
- name: restinio | |
run: | | |
mkdir restinio && cd restinio | |
wget https://github.com/Stiffstream/restinio/releases/download/v.0.7.2/restinio-0.7.2.tar.bz2 | |
ls -l && tar -xjf restinio-0.7.2.tar.bz2 | |
cd restinio-0.7.2/dev | |
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DRESTINIO_TEST=Off -DRESTINIO_SAMPLE=Off -DRESTINIO_BENCHMARK=Off \ | |
-DRESTINIO_WITH_SOBJECTIZER=Off -DRESTINIO_DEP_STANDALONE_ASIO=system -DRESTINIO_DEP_LLHTTP=system \ | |
-DRESTINIO_DEP_FMT=system -DRESTINIO_DEP_EXPECTED_LITE=system . | |
make -j2 && 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 -DBUILD_TESTING=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 | |