Skip to content
Snippets Groups Projects
Commit 748247d6 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

ci/github: update actions

parent 456f266b
No related branches found
No related tags found
No related merge requests found
name: C/C++ CI name: C/C++ CI
env:
LLHTTP_VERSION: "v9.2.0"
RESTINIO_VERSION: "0.7.3"
EXPECTED_LITE_URL: "https://raw.githubusercontent.com/martinmoene/expected-lite/master/include/nonstd/expected.hpp"
UBUNTU_FULL_DEPS: "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-dev"
UBUNTU_MESON_DEPS: "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-dev"
UBUNTU_MINIMAL_DEPS: "libncurses5-dev libreadline-dev nettle-dev libfmt-dev libgnutls28-dev libcppunit-dev libmsgpack-dev libargon2-dev"
on: [push, pull_request] on: [push, pull_request]
jobs: jobs:
...@@ -8,41 +16,48 @@ jobs: ...@@ -8,41 +16,48 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Dependencies
- name: Install Dependencies
run: | run: |
sudo apt update && \ echo "Installing Ubuntu full dependencies:"
sudo apt install libncurses5-dev libreadline-dev nettle-dev libasio-dev \ sudo apt update
libgnutls28-dev libuv1-dev python3-pip python3-dev python3-setuptools libcppunit-dev libjsoncpp-dev \ sudo apt install -y $UBUNTU_FULL_DEPS
autotools-dev autoconf libfmt-dev libmsgpack-dev libargon2-dev
- name: Cython - name: Install Cython
run: sudo pip3 install Cython run: sudo pip3 install Cython
- name: llhttp
- name: Build llhttp dependency
run: | run: |
mkdir llhttp mkdir llhttp
wget https://github.com/nodejs/llhttp/archive/refs/tags/release/v9.2.0.tar.gz -O llhttp.tar.gz wget "https://github.com/nodejs/llhttp/archive/refs/tags/release/${LLHTTP_VERSION}.tar.gz" -O llhttp.tar.gz
tar -xzf llhttp.tar.gz -C llhttp --strip-components=1 tar -xzf llhttp.tar.gz -C llhttp --strip-components=1
cd llhttp && cmake -DCMAKE_INSTALL_PREFIX=/usr . && make -j2 && sudo make install cd llhttp && cmake -DCMAKE_INSTALL_PREFIX=/usr . && make -j2 && sudo make install
cd ../ && rm -rf llhttp* cd ../ && rm -rf llhttp*
- name: expected-lite
- name: Install expected-lite header
run: | run: |
sudo mkdir /usr/local/include/nonstd && \ sudo mkdir -p /usr/local/include/nonstd
sudo wget https://raw.githubusercontent.com/martinmoene/expected-lite/master/include/nonstd/expected.hpp \ sudo wget "${EXPECTED_LITE_URL}" -O /usr/local/include/nonstd/expected.hpp
-O /usr/local/include/nonstd/expected.hpp
- name: restinio - name: Build restinio dependency
run: | run: |
mkdir restinio && cd restinio mkdir restinio && cd restinio
wget https://github.com/Stiffstream/restinio/releases/download/v.0.7.3/restinio-0.7.3.tar.bz2 wget "https://github.com/Stiffstream/restinio/releases/download/v.${RESTINIO_VERSION}/restinio-${RESTINIO_VERSION}.tar.bz2"
ls -l && tar -xjf restinio-0.7.3.tar.bz2 tar -xjf restinio-${RESTINIO_VERSION}.tar.bz2
cd restinio-0.7.3/dev cd restinio-${RESTINIO_VERSION}/dev
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DRESTINIO_TEST=Off -DRESTINIO_SAMPLE=Off -DRESTINIO_BENCHMARK=Off \ cmake -DCMAKE_INSTALL_PREFIX=/usr/local \
-DRESTINIO_WITH_SOBJECTIZER=Off -DRESTINIO_DEP_STANDALONE_ASIO=system -DRESTINIO_DEP_LLHTTP=system \ -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 . -DRESTINIO_DEP_FMT=system -DRESTINIO_DEP_EXPECTED_LITE=system .
sudo make install sudo make install
cd ../../ && rm -rf restinio* cd ../../ && rm -rf restinio*
- name: Configure
- name: Configure project
run: | run: |
./autogen.sh ./autogen.sh
./configure --enable-proxy-client ./configure --enable-proxy-client
- name: Build - name: Build
run: make run: make
...@@ -51,17 +66,20 @@ jobs: ...@@ -51,17 +66,20 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Dependencies
- name: Install Dependencies
run: | run: |
sudo apt update && \ echo "Installing Ubuntu meson dependencies:"
sudo apt install ninja-build libncurses5-dev libreadline-dev nettle-dev libasio-dev \ sudo apt update
libgnutls28-dev libuv1-dev python3-dev python3-setuptools python3-pip \ sudo apt install -y $UBUNTU_MESON_DEPS
libcppunit-dev libjsoncpp-dev libfmt-dev libmsgpack-dev libargon2-dev
- name: Python dependencies - name: Install Python dependencies
run: sudo pip3 install meson Cython run: sudo pip3 install meson Cython
- name: Configure
- name: Configure with Meson
run: meson setup build . run: meson setup build .
- name: Build
- name: Build with Ninja
run: cd build && ninja run: cd build && ninja
build-ubuntu-minimal: build-ubuntu-minimal:
...@@ -69,60 +87,70 @@ jobs: ...@@ -69,60 +87,70 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Dependencies
- name: Install Minimal Dependencies
run: | run: |
sudo apt update && \ echo "Installing Ubuntu minimal dependencies:"
sudo apt install libncurses5-dev libreadline-dev nettle-dev libfmt-dev \ sudo apt update
libgnutls28-dev libcppunit-dev libmsgpack-dev libargon2-dev sudo apt install -y $UBUNTU_MINIMAL_DEPS
- name: Configure
- name: Configure project with CMake
run: | run: |
mkdir build && cd build mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Debug \ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local \
-DOPENDHT_C=Off -DBUILD_TESTING=On -DOPENDHT_PEER_DISCOVERY=Off -DOPENDHT_PYTHON=Off \ -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 -DOPENDHT_TOOLS=On -DOPENDHT_PROXY_SERVER=Off -DOPENDHT_PROXY_CLIENT=Off
- name: Build - name: Build
run: cd build && make run: cd build && make
- name: Unit tests
- name: Run Unit tests
run: cd build && ./opendht_unit_tests run: cd build && ./opendht_unit_tests
build-macos: build-macos:
name: macOS/Clang build name: macOS/Clang build
runs-on: macOS-15 runs-on: macos-15
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Dependencies
run: |
brew install msgpack-cxx asio gnutls nettle readline fmt jsoncpp argon2 openssl cppunit
- name: expected-lite - name: Install Homebrew Dependencies
run: brew install msgpack-cxx asio gnutls nettle readline fmt jsoncpp argon2 openssl cppunit
- name: Install expected-lite header
run: | run: |
sudo mkdir -p /usr/local/include/nonstd && \ sudo mkdir -p /usr/local/include/nonstd
sudo wget https://raw.githubusercontent.com/martinmoene/expected-lite/master/include/nonstd/expected.hpp \ sudo wget "${EXPECTED_LITE_URL}" -O /usr/local/include/nonstd/expected.hpp
-O /usr/local/include/nonstd/expected.hpp
- name: restinio - name: Build restinio dependency
run: | run: |
mkdir restinio && cd restinio mkdir restinio && cd restinio
wget https://github.com/Stiffstream/restinio/releases/download/v.0.7.3/restinio-0.7.3.tar.bz2 wget "https://github.com/Stiffstream/restinio/releases/download/v.${RESTINIO_VERSION}/restinio-${RESTINIO_VERSION}.tar.bz2"
ls -l && tar -xjf restinio-0.7.3.tar.bz2 tar -xjf restinio-${RESTINIO_VERSION}.tar.bz2
cd restinio-0.7.3/dev cd restinio-${RESTINIO_VERSION}/dev
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DRESTINIO_TEST=Off -DRESTINIO_SAMPLE=Off -DRESTINIO_BENCHMARK=Off \ cmake -DCMAKE_INSTALL_PREFIX=/usr/local \
-DRESTINIO_WITH_SOBJECTIZER=Off -DRESTINIO_DEP_STANDALONE_ASIO=system -DRESTINIO_DEP_LLHTTP=system \ -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 . -DRESTINIO_DEP_FMT=system -DRESTINIO_DEP_EXPECTED_LITE=system .
make -j2 && sudo make install make -j2 && sudo make install
cd ../../ && rm -rf restinio* cd ../../ && rm -rf restinio*
- name: Configure - name: Configure project with CMake
run: | run: |
mkdir build && cd build mkdir build && cd build
# Set Homebrew OpenSSL paths
export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH" export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/openssl@3/lib" export LDFLAGS="-L/usr/local/opt/openssl@3/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@3/include" export CPPFLAGS="-I/usr/local/opt/openssl@3/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig" export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig"
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Debug \ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local \
-DOPENDHT_C=On -DBUILD_TESTING=On -DOPENDHT_PEER_DISCOVERY=On -DOPENDHT_PYTHON=Off \ -DCMAKE_BUILD_TYPE=Debug \
-DOPENDHT_TOOLS=On -DOPENDHT_PROXY_SERVER=On -DOPENDHT_PROXY_CLIENT=On -DOPENDHT_PUSH_NOTIFICATIONS=On -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 - name: Build
run: cd build && make run: cd build && make
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment