Skip to content

CI(16) of dual description using symmetries #5

CI(16) of dual description using symmetries

CI(16) of dual description using symmetries #5

name: CI(16) of dual description using symmetries
# https://help.github.com/en/articles/events-that-trigger-workflows#release-event-release
# model taken from https://github.com/mockersf/kmanb/releases
# on: release
# Scheduling syntax is available at
# https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules
on:
# One time per month
schedule:
- cron: "0 0 16 * *"
# Manually triggered
workflow_dispatch:
# Disabled right now, when a push is made on master.
jobs:
build-linux:
runs-on: ubuntu-latest
env:
GMP_INCDIR: /usr/include
GMP_CXX_LINK: "-lm -lgmp -lgmpxx"
BOOST_INCDIR: "/usr/include"
BOOST_LINK: "/usr/lib/x86_64-linux-gnu/libboost_serialization.a"
EIGEN_PATH: /home/runner/work/opt/eigen
GLPK_INCLUDE: "-I/usr/include"
GLPK_LINK: "-L/usr/lib -lglpk -Wl,-rpath,/usr/lib"
FLINT_INCDIR: "/include"
FLINT_LINK: "-lflint"
CDDLIB_PATH: "/home/runner/work/opt/cddlib"
PPL_PATH: "/home/runner/work/opt/ppl"
CDDLIB_INCLUDE: "-I/home/runner/work/opt/cddlib/include/cddlib"
CDDLIB_DOUBLE_LINK: "-L/home/runner/work/opt/cddlib/lib -lcdd -Wl,-rpath,/home/runner/work/opt/cddlib/lib"
CDDLIB_GMP_LINK: "-L/home/runner/work/opt/cddlib/lib -lcddgmp -Wl,-rpath,/home/runner/work/opt/cddlib/lib"
NAUTY_PATH: /home/runner/work/opt/nauty
NAUTY_INCLUDE: "-I/home/runner/work/opt/nauty/include"
NAUTY_LINK: "/home/runner/work/opt/nauty/lib/libnauty_static.a"
LIBBLISS_PATH: /home/runner/opt/libbliss
LIBBLISS_INCDIR: /home/runner/opt/libbliss/include
LIBBLISS_LINK: "-L/home/runner/opt/libbliss/lib -lbliss -Wl,-rpath,/home/runner/opt/libbliss/lib"
MPI_INCLUDE_CPP: "-I/usr/lib/x86_64-linux-gnu/openmpi/include"
MPI_LINK_CPP: "-lboost_mpi -lboost_serialization -lmpi -lmpi_cxx"
MPFR_INCDIR: /usr/include
MPFR_LINK: "-lmpfr"
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Install Dependencies
run: |
sudo apt update
sudo apt install -y libgdbm-dev libsnappy-dev make pkg-config rlwrap software-properties-common zlib1g-dev
sudo apt install -y wget
sudo apt install -y g++ gcc gfortran
sudo apt install -y cmake
sudo apt install -y libgmp-dev
sudo apt install -y libboost-dev libboost-mpi-dev libboost-serialization-dev
sudo apt install -y libglpk-dev libflint-dev
sudo apt install -y autoconf autotools-dev libtool
sudo apt install -y texlive-latex-base # needed for the CDD manual to be compiled
sudo apt install -y libntl-dev libmpfr-dev
sudo apt install -y openmpi-bin libopenmpi-dev
sudo apt install -y autoconf autotools-dev libtool
sudo apt install -y xz-utils
- name: Build test code
run: |
ls
echo "After ls"
pwd
echo "After pwd"
ls basic_common_cpp
echo "After ls basic_common_cpp"
mkdir basic_common_cpp/ExternalLib/nauty/build
cd basic_common_cpp/ExternalLib/nauty/build && cmake -DCMAKE_INSTALL_PREFIX:PATH=$NAUTY_PATH .. && make all install && cd ../../../..
pwd
echo "After nauty compilation"
mkdir basic_common_cpp/ExternalLib/bliss/build
cd basic_common_cpp/ExternalLib/bliss/build && cmake -DCMAKE_INSTALL_PREFIX:PATH=$LIBBLISS_PATH .. && make all install && cd ../../../..
pwd
echo "After bliss compilation"
git clone https://github.com/cddlib/cddlib
cd cddlib && ./bootstrap && ./configure --prefix=$CDDLIB_PATH && make && make install && cd ..
pwd
echo "After cddlib compilation"
# We need specific version 3.3.9 because of a bug in 3.4.0 for algebraic data types.
wget -q https://gitlab.com/libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.tar.gz
tar -xzf eigen-3.3.9.tar.gz
mv eigen-3.3.9 /home/runner/work/opt/eigen
pwd
echo "After eigen-3.3.9 set up"
# Downloading and compiling gap
wget -q https://github.com/gap-system/gap/releases/download/v4.11.1/gap-4.11.1.tar.gz
tar -xzf gap-4.11.1.tar.gz
cd gap-4.11.1 && ./configure && make && cd ..
pwd
ln -s gap-4.11.1/bin/gap.sh .
# Downloading and installing PPL
wget -q https://www.bugseng.com/products/ppl/download/ftp/releases/1.2/ppl-1.2.tar.xz
tar xf ppl-1.2.tar.xz
cd ppl-1.2
./configure --prefix=$PPL_PATH && make && make install
mkdir -p /home/runner/.local/bin/
ln -s $PPL_PATH/bin/ppl_lcdd /home/runner/.local/bin/ppl_lcdd
- name: Test dual description using symmetries
run: |
cd src_dualdesc && make -f Makefile_CI && cd ..
echo "After compilation of dual desc code"
cd CI_tests/EquivDualDesc && ../../gap.sh < TestCases.g
if [ ! -f "CI_CONCLUSION" ]; then
echo "gap test code has not finished correctly" >&2
exit 1
fi
cd ../..
echo "We are in test directory"