CI(16) of dual description using symmetries #5
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: 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" |