libBLS Nightly Tests #785
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: libBLS Nightly Tests | |
on: | |
schedule: | |
- cron: '0 0 * * *' | |
workflow_dispatch: | |
jobs: | |
main_job: | |
runs-on: ubuntu-20.04 | |
env: | |
NIGHTLY_BUILD_FLAGS: "valgrind --leak-check=yes" | |
steps: | |
- name: Extract repo name | |
run: echo ::set-env name=REPOSITORY_NAME::$(echo "$GITHUB_REPOSITORY" | awk -F / '{print $2}') | |
shell: bash | |
env: | |
ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
- name: Checkout | |
uses: actions/checkout@v2 | |
# - name: Set up Python 3.6 | |
# uses: actions/setup-python@v1 | |
# with: | |
# python-version: 3.6 | |
- name: Update apt | |
run: | | |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test | |
sudo apt-get update | |
- name: Install packages | |
run: | | |
sudo apt-get install -y software-properties-common | |
sudo apt-get install -y gcc-9 g++-9 | |
- name: use g++-9 by default | |
run: | | |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9 | |
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9 | |
- name: Install more packages | |
run: | | |
sudo apt-get install -y gawk sed shtool \ | |
libffi-dev yasm texinfo flex bison libgnutls28-dev libc6-dbg gcc-multilib | |
sudo snap install valgrind --classic | |
python -m pip install --upgrade pip | |
pip install coincurve | |
- name: Build dependencies | |
run: | | |
export CC=gcc-9 | |
export CXX=g++-9 | |
export TARGET=all | |
cd deps | |
./build.sh | |
- name: Configure all | |
run: | | |
export CC=gcc-9 | |
export CXX=g++-9 | |
export TARGET=all | |
mkdir -p build && cd build | |
cmake .. | |
- name: Build all | |
run: | | |
export CC=gcc-9 | |
export CXX=g++-9 | |
export TARGET=all | |
cd build | |
make -j$(nproc) | |
- name: Run tests | |
run: | | |
cp scripts/parameters.json build/ | |
cd build | |
$NIGHTLY_BUILD_FLAGS ./bls_unit_test | |
$NIGHTLY_BUILD_FLAGS ./dkg_unit_test | |
$NIGHTLY_BUILD_FLAGS ./utils_unit_test | |
$NIGHTLY_BUILD_FLAGS ./bls_test | |
$NIGHTLY_BUILD_FLAGS ./threshold_encryption/te_unit_test | |
$NIGHTLY_BUILD_FLAGS ./threshold_encryption/te_test | |
$NIGHTLY_BUILD_FLAGS ./dkg_attack | |
# - name: Run python test | |
# run: | | |
# cd python | |
# ./setup.sh | |
# ./test.sh | |
# cd .. | |
- name: Run tools tests | |
run: | | |
./scripts/run_tools_test.sh | |
linux_build_with_emscripten: | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
node-version: [14.x] | |
steps: | |
- name: Extract repo name | |
run: echo ::set-env name=REPOSITORY_NAME::$(echo "$GITHUB_REPOSITORY" | awk -F / '{print $2}') | |
shell: bash | |
env: | |
ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Update apt | |
run: sudo add-apt-repository ppa:ubuntu-toolchain-r/test; | |
- name: Install packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y gcc-9 g++-9 gawk sed shtool \ | |
libffi-dev yasm texinfo flex bison \ | |
python3.6 lcov gcc-multilib | |
sudo apt-get update -qq | |
sudo apt-get install -y python3-pip | |
pip3 install --upgrade pip | |
sudo python3 -m pip install --upgrade pip | |
sudo python3 -m pip install pyopenssl ndg-httpsclient pyasn1 | |
sudo python3 -m pip install requests[security] | |
- name: Install NODE JS | |
uses: actions/setup-node@v2 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Build dependencies | |
run: | | |
export CC=gcc-9 | |
export CXX=g++-9 | |
export TARGET=all | |
cd deps | |
./build.sh WITH_EMSCRIPTEN=1 | |
cd .. | |
- name: Build all | |
run: | | |
cd deps/emsdk | |
./emsdk install latest | |
./emsdk activate latest | |
source ./emsdk_env.sh | |
cd ../.. | |
mkdir -p build_em | |
cd build_em | |
export LIBRARIES_ROOT=../deps/deps_inst/x86_or_x64/lib | |
emcmake cmake -DEMSCRIPTEN=ON .. -DGMP_LIBRARY="$LIBRARIES_ROOT"/libgmp.a -DCRYPTOPP_LIBRARY="$LIBRARIES_ROOT"/libcrypto.a -DGMPXX_LIBRARY="$LIBRARIES_ROOT"/libgmpxx.a | |
emmake make -j$(nproc) | |
cd .. | |
- name: Run tests | |
run: | | |
cp tools/generate_bls_keys build_em/ | |
cp tools/decrypt_message build_em/ | |
cd build_em/ | |
cp threshold_encryption/encrypt_message.* . | |
./generate_bls_keys | |
MESSAGE=`cat message.txt` | |
PUBLIC_BLS_KEY=`cat bls_public_key.txt` | |
node encrypt_message.js $MESSAGE $PUBLIC_BLS_KEY > encrypted_data.txt | |
./decrypt_message |