1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
on-restart-benchmarks/.disabled-gitlab-ci.yml
Jip J. Dekker f2a1c4e389 Squashed 'software/mza/' content from commit f970a59b17
git-subtree-dir: software/mza
git-subtree-split: f970a59b177c13ca3dd8aaef8cc6681d83b7e813
2021-07-11 16:34:30 +10:00

153 lines
4.5 KiB
YAML

stages:
- check
- build
- trigger
.download_script: &download_script
- curl --location --header "PRIVATE-TOKEN:$ACCESS_TOKEN" --silent https://gitlab.com/api/v4/snippets/1796163/raw | tr -d '\r' > download.sh
variables:
# Vendor solver locations
GECODE_ROOT: "$CI_PROJECT_DIR/vendor/gecode"
GUROBI_ROOT: "$CI_PROJECT_DIR/vendor/gurobi"
CPLEX_ROOT: "$CI_PROJECT_DIR/vendor/CPLEX_Studio/cplex"
OSICBC_ROOT: "$CI_PROJECT_DIR/vendor/cbc"
# CCache settings
CCACHE_DIR: "$CI_PROJECT_DIR/.ccache"
CCACHE_MAXSIZE: "100M"
# ----------- Quick check -----------
check:format:
stage: check
image: dekker1/minibuild:clang-format
script:
- mkdir -p build
- cd build
- cmake -GNinja .. -DCLANG_FORMAT_EXECUTABLE="run-clang-format" -DCLANG_FORMAT_FLAGS="--color always"
- cmake --build . --target format
tags: [linux, docker]
# ----------- Build MiniZinc -----------
.build_template: &build_definition
stage: build
before_script: *download_script
script:
- sh download.sh vendor master vendor:${MZNARCH} vendor.zip
- unzip -q vendor.zip
- mkdir -p build
- cd build
- cmake -G"$CMAKE_ARCH" -DCMAKE_BUILD_TYPE=Release -v .. -DBUILD_REF=$CI_PIPELINE_ID -DUSE_PROPRIETARY=OFF -DCMAKE_INSTALL_PREFIX="$CI_PROJECT_DIR/minizinc"
- cmake --build . --config Release
- cmake --build . --config Release --target install
artifacts:
paths: [minizinc/]
cache:
key: "$CI_JOB_NAME"
paths: [.ccache, vendor.zip*]
build:linux:
<<: *build_definition
image: dekker1/minibuild:cpp
variables:
MZNARCH: "linux"
CMAKE_ARCH: "Ninja"
tags: [linux, docker]
build:musl:
<<: *build_definition
image: dekker1/minibuild:alpine
variables:
MZNARCH: "musl"
CMAKE_ARCH: "Ninja"
tags: [linux, docker]
build:osx:
<<: *build_definition
stage: build
variables:
MZNARCH: "osx"
CMAKE_ARCH: "Ninja"
tags: [osx, cmake, cpp]
build:win64:
stage: build
variables:
MZNARCH: "win64"
CMAKE_ARCH: "Visual Studio 15 2017 Win64"
before_script:
- curl -o download.sh --location --header "PRIVATE-TOKEN:%ACCESS_TOKEN%" --silent https://gitlab.com/api/v4/snippets/1796163/raw
- dos2unix download.sh
script:
- sh download.sh vendor master vendor:%MZNARCH% vendor.zip
- unzip -q vendor.zip
- if not exist "build" mkdir build
- cd build
- cmake -G"%CMAKE_ARCH%" .. -DBUILD_REF=%CI_PIPELINE_ID% -DUSE_PROPRIETARY=OFF -DCMAKE_INSTALL_PREFIX="%CI_PROJECT_DIR%/minizinc"
- cmake --build . --config Release
- cmake --build . --config Release --target install
artifacts:
paths: [minizinc/]
cache:
key: "win64"
paths: [vendor.zip*]
tags: [win64, cmake, cpp]
build:wasm_complete:
image: trzeci/emscripten
stage: build
variables:
MZNARCH: "wasm"
CMAKE_ARCH: "Unix Makefiles"
tags: [docker]
before_script: *download_script
script:
- sh download.sh vendor master vendor:wasm vendor.zip
- unzip -q vendor.zip
- mkdir -p build
- cd build
- emconfigure cmake -G"$CMAKE_ARCH" -DCMAKE_FIND_ROOT_PATH="/" -DGECODE_ROOT="$GECODE_ROOT" -DOSICBC_ROOT="$OSICBC_ROOT" -DCMAKE_BUILD_TYPE=MinSizeRel -DEMSCRIPTEN_GENERATE_BITCODE_STATIC_LIBRARIES=1 -v .. -DBUILD_REF=$CI_PIPELINE_ID -DUSE_PROPRIETARY=OFF -DCMAKE_INSTALL_PREFIX="$CI_PROJECT_DIR/minizinc"
- cmake --build . --config MinSizeRel
- cmake --build . --config MinSizeRel --target install
artifacts:
paths: [minizinc/]
cache:
key: "$CI_JOB_NAME"
paths: [.ccache, vendor.zip*]
when: manual
build:wasm_minimal:
image: trzeci/emscripten
stage: build
variables:
MZNARCH: "wasm"
CMAKE_ARCH: "Unix Makefiles"
tags: [docker]
before_script: *download_script
script:
- sh download.sh vendor master vendor:wasm vendor.zip
- unzip -q vendor.zip
- mkdir -p build
- cd build
- emconfigure cmake -G"$CMAKE_ARCH" -DCMAKE_BUILD_TYPE=MinSizeRel -DEMSCRIPTEN_GENERATE_BITCODE_STATIC_LIBRARIES=1 -v .. -DBUILD_REF=$CI_PIPELINE_ID -DUSE_PROPRIETARY=OFF -DCMAKE_INSTALL_PREFIX="$CI_PROJECT_DIR/minizinc"
- cmake --build . --config MinSizeRel
- cmake --build . --config MinSizeRel --target install
artifacts:
paths: [minizinc/]
cache:
key: "$CI_JOB_NAME"
paths: [.ccache, vendor.zip*]
when: manual
# ----------- Trigger FindMUS pipeline -----------
trigger:findmus:
stage: trigger
image: dekker1/minibuild:package
script:
- "curl --request POST --form token=$TRIGGER --form ref=master https://gitlab.com/api/v4/projects/minizinc%2FFindMUS/trigger/pipeline"
dependencies: []
tags: [linux, docker]
only: [develop]