From 970e71d21555cc48813a66b92e4c6a7d2e7c6544 Mon Sep 17 00:00:00 2001
From: Adrien Beraud <adrien.beraud@savoirfairelinux.com>
Date: Sat, 25 Mar 2023 14:38:39 -0400
Subject: [PATCH] ci/github: add meson build

---
 .github/workflows/ccpp.yml | 56 +++++++++++++++++++++++---------------
 1 file changed, 34 insertions(+), 22 deletions(-)

diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml
index 062ad2b6..72a8828f 100644
--- a/.github/workflows/ccpp.yml
+++ b/.github/workflows/ccpp.yml
@@ -4,55 +4,67 @@ on: [push, pull_request]
 
 jobs:
   build-ubuntu:
-    name: Ubuntu/GCC build
+    name: Ubuntu/GCC autotools build
     runs-on: ubuntu-latest
     steps:
     - uses: actions/checkout@v3
-    - name: deps
+    - name: Dependencies
       run: |
-        sudo apt install libncurses5-dev libreadline-dev nettle-dev \
+        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: autogen
-      run: ./autogen.sh
-    - name: asio
+    - name: Configure
       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
+        ./autogen.sh
+        ./configure
+    - name: Build
+      run: make
+    - name: Unit tests
+      run: ./opendht_unit_tests
+
+  build-ubuntu:
+    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: make
-    - name: make check
-      run: make check
+    - name: Unit tests
+      run: ./opendht_unit_tests
 
   build-ubuntu-minimal:
     name: Ubuntu/GCC minimal build
     runs-on: ubuntu-latest
     steps:
     - uses: actions/checkout@v3
-    - name: deps
+    - name: Dependencies
       run: |
         sudo apt install libncurses5-dev libreadline-dev nettle-dev \
         libgnutls28-dev libcppunit-dev libmsgpack-dev libargon2-0-dev
-    - name: cmake
+    - 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: make
+    - name: Build
       run: cd build && make
+    - name: Unit tests
+      run: cd build && ./opendht_unit_tests
 
   build-macos:
     name: macOS/Clang build
     runs-on: macos-11
     steps:
     - uses: actions/checkout@v3
-    - name: deps
+    - name: Dependencies
       run: |
         brew install msgpack-cxx asio gnutls nettle readline fmt jsoncpp argon2 openssl http-parser cppunit
 
@@ -68,7 +80,7 @@ jobs:
         make -j8 && sudo make install
         cd ../../.. && rm -rf restinio
 
-    - name: cmake
+    - name: Configure
       run: |
         mkdir build && cd build
         export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"
@@ -79,6 +91,6 @@ jobs:
                  -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: make
+    - name: Build
       run: cd build && make
 
-- 
GitLab