diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d0dd26997..269c14917 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,6 +10,7 @@ on: - Makefile - src/** - etc/build/** + - etc/hs-deps/** - .github/workflows/build.yml pull_request: # and for PRs paths: @@ -17,6 +18,7 @@ on: - Makefile - src/** - etc/build/** + - etc/hs-deps/** - .github/workflows/build.yml # other branches that want testing must create a PR diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9753abecf..e1c5a5a36 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,6 +12,7 @@ on: - src/** - tests/** - etc/build/** + - etc/hs-deps/** - etc/savilerow/** - .github/workflows/test.yml pull_request: # and for PRs @@ -21,6 +22,7 @@ on: - src/** - tests/** - etc/build/** + - etc/hs-deps/** - etc/savilerow/** - .github/workflows/test.yml # other branches that want testing must create a PR diff --git a/Dockerfile b/Dockerfile index e8fe9d109..3749b52da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,7 @@ WORKDIR /conjure/ RUN mkdir -p /root/.local/bin ENV PATH /root/.local/bin:$PATH ENV LD_LIBRARY_PATH /root/.local/bin/lib:$LD_LIBRARY_PATH - +ENV MZN_STDLIB_DIR /root/.local/bin/share/minizinc/ # Dependencies RUN apt-get update RUN apt-get install -y --no-install-recommends build-essential # so we can compile stuff @@ -45,6 +45,7 @@ RUN PROCESSES=2 etc/build/install-glucose.sh RUN PROCESSES=2 etc/build/install-kissat.sh RUN PROCESSES=2 etc/build/install-lingeling.sh RUN PROCESSES=2 etc/build/install-minion.sh +RUN PROCESSES=2 etc/build/install-minizinc.sh RUN PROCESSES=2 etc/build/install-nbc_minisat_all.sh RUN PROCESSES=2 etc/build/install-open-wbo.sh RUN PROCESSES=2 etc/build/install-ortools.sh @@ -72,6 +73,7 @@ FROM ubuntu:23.10 WORKDIR /conjure ENV PATH /root/.local/bin:$PATH ENV LD_LIBRARY_PATH /root/.local/bin/lib:$LD_LIBRARY_PATH +ENV MZN_STDLIB_DIR /root/.local/bin/share/minizinc/ RUN apt-get update RUN apt-get install -y --no-install-recommends default-jre-headless # savilerow RUN mkdir -p /root/.local/bin/lib diff --git a/etc/build/install-minizinc.sh b/etc/build/install-minizinc.sh new file mode 100755 index 000000000..e15961ba6 --- /dev/null +++ b/etc/build/install-minizinc.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# version as of 23 February 2024 +VERSION=2.8.3 +set -o errexit +set -o nounset + +export BIN_DIR=${BIN_DIR:-${HOME}/.local/bin} + +rm -rf tmp-install-minizinc +mkdir tmp-install-minizinc +pushd tmp-install-minizinc +git clone https://github.com/MiniZinc/libminizinc.git +cd libminizinc +git checkout $VERSION +mkdir build +cd build +cmake .. +cmake --build . +cp minizinc ${BIN_DIR}/minizinc +mkdir -p ${BIN_DIR}/share +cp -r ../share/minizinc ${BIN_DIR}/share/minizinc +echo "minizinc executable is at ${BIN_DIR}/minizinc" +ls -l ${BIN_DIR}/minizinc +export MZN_STDLIB_DIR=${BIN_DIR}/share/minizinc/ +echo "set env variable MZN_STDLIB_DIR to ${BIN_DIR}/share/minizinc. Please consider making it permanent" +popd +rm -rf tmp-install-minizinc