feat: add provider interface #856
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: Build and Unit Tests | |
on: [push] | |
jobs: | |
build_and_unit_tests_little_endian: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Dependencies | |
run: | | |
sudo apt update | |
sudo apt install build-essential | |
sudo apt install cmake | |
sudo apt install libgtest-dev | |
sudo apt install clang-tidy | |
- name: Setup Sodium | |
run: | | |
cd $(mktemp -d) | |
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.19.tar.gz -O sodium.tar.gz | |
tar -xzf sodium.tar.gz | |
cp -rp ./libsodium-stable/* . | |
./configure CFLAGS=-fPIC CXXFLAGS=-fPIC --enable-shared --with-pic | |
make && make check | |
sudo make install | |
cd - | |
- name: Setup JSON-C | |
run: | | |
cd $(mktemp -d) | |
wget https://github.com/json-c/json-c/archive/refs/tags/json-c-0.17-20230812.tar.gz -O json-c.tar.gz | |
tar -xzf json-c.tar.gz | |
cd ./json-c-json-c-0.17-20230812 | |
cmake . | |
make | |
sudo make install | |
cd - | |
- name: Setup GMP | |
run: | | |
cd $(mktemp -d) | |
wget https://storage.googleapis.com/biglup/gmp-6.2.1.tar.xz -O gmp.tar.xz | |
tar Jxf gmp.tar.xz | |
cd ./gmp-6.2.1 | |
./configure CFLAGS="-fPIC" CXXFLAGS="-fPIC" --enable-static=yes --enable-shared=no --with-pic | |
make -j$(nproc) | |
sudo make install | |
cd - | |
- name: Setup Gtest | |
run: | | |
cd $(mktemp -d) | |
cmake /usr/src/googletest | |
make | |
sudo make install | |
cd - | |
- name: Checkout the repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: "true" | |
- name: Build | |
run: | | |
./scripts/create-debug-makefiles.sh | |
make | |
- name: Run Unit Tests | |
run: | | |
make test | |
ctest -T Coverage | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v3 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
build_and_unit_tests_big_endian: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: ubuntu-latest | |
target: mips-unknown-linux-gnu | |
toolchain: stable | |
steps: | |
- name: Install Dependencies | |
run: | | |
sudo apt update | |
sudo apt install build-essential | |
sudo apt install cmake | |
sudo apt install libgtest-dev | |
sudo apt install clang-tidy | |
sudo apt install m4 | |
- name: Setup Sodium | |
run: | | |
cd $(mktemp -d) | |
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.19.tar.gz -O sodium.tar.gz | |
tar -xzf sodium.tar.gz | |
cp -rp ./libsodium-stable/* . | |
./configure CFLAGS=-fPIC CXXFLAGS=-fPIC --enable-shared --with-pic | |
make && make check | |
sudo make install | |
cd - | |
- name: Setup JSON-C | |
run: | | |
cd $(mktemp -d) | |
wget https://github.com/json-c/json-c/archive/refs/tags/json-c-0.17-20230812.tar.gz -O json-c.tar.gz | |
tar -xzf json-c.tar.gz | |
cd ./json-c-json-c-0.17-20230812 | |
cmake . | |
make | |
sudo make install | |
cd - | |
- name: Setup GMP | |
run: | | |
cd $(mktemp -d) | |
wget https://storage.googleapis.com/biglup/gmp-6.2.1.tar.xz -O gmp.tar.xz | |
tar Jxf gmp.tar.xz | |
cd ./gmp-6.2.1 | |
./configure CFLAGS="-fPIC" CXXFLAGS="-fPIC" --enable-static=yes --enable-shared=no --with-pic | |
make -j$(nproc) | |
sudo make install | |
cd - | |
- name: Setup Gtest | |
run: | | |
cd $(mktemp -d) | |
cmake /usr/src/googletest | |
make | |
sudo make install | |
cd - | |
- name: Checkout the repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: "true" | |
- name: Build | |
run: | | |
./scripts/create-debug-makefiles.sh | |
make | |
- name: Run Unit Tests | |
run: | | |
make test |