Skip to content

Merge branch 'master' of github.com:UCLA-IRL/NAC-ABE #119

Merge branch 'master' of github.com:UCLA-IRL/NAC-ABE

Merge branch 'master' of github.com:UCLA-IRL/NAC-ABE #119

Workflow file for this run

name: CMake
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: RelWithDebInfo
jobs:
ubuntu-build:
name: ${{ matrix.compiler }} on ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
compiler: [g++-8, g++-9, g++-10, g++-11,
clang++-7, clang++-8, clang++-9, clang++-10, clang++-11, clang++-12]
os: [ubuntu-20.04]
runs-on: ${{ matrix.os }}
env:
CXX: ${{ matrix.compiler }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt-get -qy install software-properties-common
sudo add-apt-repository -ny ppa:named-data/ppa
sudo apt-get -qq update
sudo apt-get -y install build-essential pkg-config cmake doxygen python3-pip \
python3-minimal libboost-all-dev libsqlite3-dev libpcap-dev \
libssl-dev libsodium-dev libz-dev liblog4cxx-dev libgtest-dev libfl-dev $CXX
- name: Install OpenABE
run: |
cd ..
git clone https://github.com/zeutro/openabe.git
cd openabe
sudo -E ./deps/install_pkgs.sh
. ./env
cd deps/relic
make
cd ../..
NO_DEPS=1 BISON=$(which bison) make
# test is no longer compliable after b8f9d3c8a2620c1185ca972248f7af39c1eae68c
# make test
sudo -E make install
cd ../NAC-ABE
- name: Configure ndn-cxx
run: |
cd ..
git clone -b ndn-cxx-0.8.1 --depth=1 https://github.com/named-data/ndn-cxx
cd ndn-cxx
./waf --color=yes configure --disable-static --enable-shared --without-osx-keychain
./waf --color=yes build
sudo ./waf install
sudo ldconfig
cd ../NAC-ABE
- name: Configure NFD
run: |
cd ..
git clone -b NFD-22.12 --depth=1 https://github.com/named-data/NFD
cd NFD
git submodule update --init
./waf --color=yes configure
./waf --color=yes build
sudo ./waf install
sudo cp /usr/local/etc/ndn/nfd.conf.sample /usr/local/etc/ndn/nfd.conf
cd ../NAC-ABE
nfd-start
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DHAVE_TESTS=True -DBUILD_EXAMPLES=True
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
- name: Test
working-directory: ${{github.workspace}}/build
env:
LD_LIBRARY_PATH: /usr/local/lib:$LD_LIBRARY_PATH
CTEST_OUTPUT_ON_FAILURE: 1
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: |
cp ../tests/unit-tests/trust-schema.conf trust-schema.conf
./tests/unit-tests
bash ./../examples/run-examples.sh .
macos-build:
name: Xcode ${{ matrix.xcode }} on ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ macos-11 ]
xcode: [ '12.4', '12.5', '13.2' ]
include:
- os: macos-12
xcode: '13.4'
- os: macos-12
xcode: '14.2'
runs-on: ${{ matrix.os }}
steps:
- name: Set up Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ matrix.xcode }}
- name: Checkout
uses: actions/checkout@v3
- name: Configure googletest
run: |
cd ..
wget https://github.com/google/googletest/archive/refs/tags/release-1.12.1.tar.gz
tar -xzvf release-1.12.1.tar.gz
cd googletest-release-1.12.1
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release ..
make
sudo make install
cmake -DCMAKE_BUILD_TYPE=Release ..
make
sudo make install
cd ../..
- name: Install dependencies
run: |
FORMULAE=(boost openssl pkg-config bison gsed [email protected])
# GitHub Actions runners have a large number of pre-installed
# Homebrew packages. Don't waste time upgrading all of them.
brew list --versions "${FORMULAE[@]}" || brew update
for FORMULA in "${FORMULAE[@]}"; do
brew list --versions "$FORMULA" || brew install "$FORMULA"
done
# Ensure /usr/local/opt/openssl exists
# brew reinstall openssl [email protected]
- name: Install OpenABE
run: |
cd ..
git clone https://github.com/zeutro/openabe.git
cd openabe
mv VERSION OpenABE-VERSION
sudo -E ./deps/install_pkgs.sh
. ./env
cd deps/relic
PATH="$(brew --prefix)/opt/gnu-sed/libexec/gnubin:$PATH" make
cd ../..
ln -sf /usr/local/opt/[email protected]/include/openssl /usr/local/include
ln -sf /usr/local/opt/[email protected]/lib/lib* /usr/local/lib
NO_DEPS=1 BISON="$(brew --prefix bison)/bin/bison" make
# test is no longer compliable after b8f9d3c8a2620c1185ca972248f7af39c1eae68c
# make test
sudo -E make install
cd ../NAC-ABE
env:
LDFLAGS: "-L/usr/local/opt/[email protected]/lib"
- name: Configure ndn-cxx
run: |
cd ..
git clone https://github.com/named-data/ndn-cxx
cd ndn-cxx
git checkout 535bd33223a63f7ec4820d90db2f8764ffb635f8
./waf --color=yes configure --with-tests --without-osx-keychain
./waf --color=yes build
sudo ./waf --color=yes install
./build/unit-tests
cd ../NAC-ABE
- name: Configure NFD
run: |
cd ..
git clone -b NFD-22.12 --depth=1 https://github.com/named-data/NFD
cd NFD
git submodule update --init
./waf --color=yes configure
./waf --color=yes build
sudo ./waf --color=yes install
sudo cp /usr/local/etc/ndn/nfd.conf.sample /usr/local/etc/ndn/nfd.conf
cd ../NAC-ABE
sudo nfd-start
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DHAVE_TESTS=True -DBUILD_EXAMPLES=True
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
- name: Test
working-directory: ${{github.workspace}}/build
env:
LD_LIBRARY_PATH: /usr/local/lib:$LD_LIBRARY_PATH
CTEST_OUTPUT_ON_FAILURE: 1
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: |
cp ../tests/unit-tests/trust-schema.conf trust-schema.conf
./tests/unit-tests
bash ./../examples/run-examples.sh .