A set of benchmarks to compare a new prototype MiniZinc implementation
at develop 4.6 kB view raw
1stages: 2 - check 3 - build 4 - trigger 5 6.download_script: &download_script 7 - curl --location --header "PRIVATE-TOKEN:$ACCESS_TOKEN" --silent https://gitlab.com/api/v4/snippets/1796163/raw | tr -d '\r' > download.sh 8 9variables: 10 # Vendor solver locations 11 GECODE_ROOT: "$CI_PROJECT_DIR/vendor/gecode" 12 GUROBI_ROOT: "$CI_PROJECT_DIR/vendor/gurobi" 13 CPLEX_ROOT: "$CI_PROJECT_DIR/vendor/CPLEX_Studio/cplex" 14 OSICBC_ROOT: "$CI_PROJECT_DIR/vendor/cbc" 15 # CCache settings 16 CCACHE_DIR: "$CI_PROJECT_DIR/.ccache" 17 CCACHE_MAXSIZE: "100M" 18 19# ----------- Quick check ----------- 20 21check:format: 22 stage: check 23 image: dekker1/minibuild:clang-format 24 script: 25 - mkdir -p build 26 - cd build 27 - cmake -GNinja .. -DCLANG_FORMAT_EXECUTABLE="run-clang-format" -DCLANG_FORMAT_FLAGS="--color always" 28 - cmake --build . --target format 29 tags: [linux, docker] 30 31# ----------- Build MiniZinc ----------- 32 33.build_template: &build_definition 34 stage: build 35 before_script: *download_script 36 script: 37 - sh download.sh vendor master vendor:${MZNARCH} vendor.zip 38 - unzip -q vendor.zip 39 - mkdir -p build 40 - cd build 41 - cmake -G"$CMAKE_ARCH" -DCMAKE_BUILD_TYPE=Release -v .. -DBUILD_REF=$CI_PIPELINE_ID -DUSE_PROPRIETARY=OFF -DCMAKE_INSTALL_PREFIX="$CI_PROJECT_DIR/minizinc" 42 - cmake --build . --config Release 43 - cmake --build . --config Release --target install 44 artifacts: 45 paths: [minizinc/] 46 cache: 47 key: "$CI_JOB_NAME" 48 paths: [.ccache, vendor.zip*] 49 50build:linux: 51 <<: *build_definition 52 image: dekker1/minibuild:cpp 53 variables: 54 MZNARCH: "linux" 55 CMAKE_ARCH: "Ninja" 56 tags: [linux, docker] 57 58build:musl: 59 <<: *build_definition 60 image: dekker1/minibuild:alpine 61 variables: 62 MZNARCH: "musl" 63 CMAKE_ARCH: "Ninja" 64 tags: [linux, docker] 65 66build:osx: 67 <<: *build_definition 68 stage: build 69 variables: 70 MZNARCH: "osx" 71 CMAKE_ARCH: "Ninja" 72 tags: [osx, cmake, cpp] 73 74build:win64: 75 stage: build 76 variables: 77 MZNARCH: "win64" 78 CMAKE_ARCH: "Visual Studio 15 2017 Win64" 79 before_script: 80 - curl -o download.sh --location --header "PRIVATE-TOKEN:%ACCESS_TOKEN%" --silent https://gitlab.com/api/v4/snippets/1796163/raw 81 - dos2unix download.sh 82 script: 83 - sh download.sh vendor master vendor:%MZNARCH% vendor.zip 84 - unzip -q vendor.zip 85 - if not exist "build" mkdir build 86 - cd build 87 - cmake -G"%CMAKE_ARCH%" .. -DBUILD_REF=%CI_PIPELINE_ID% -DUSE_PROPRIETARY=OFF -DCMAKE_INSTALL_PREFIX="%CI_PROJECT_DIR%/minizinc" 88 - cmake --build . --config Release 89 - cmake --build . --config Release --target install 90 artifacts: 91 paths: [minizinc/] 92 cache: 93 key: "win64" 94 paths: [vendor.zip*] 95 tags: [win64, cmake, cpp] 96 97build:wasm_complete: 98 image: trzeci/emscripten 99 stage: build 100 variables: 101 MZNARCH: "wasm" 102 CMAKE_ARCH: "Unix Makefiles" 103 tags: [docker] 104 before_script: *download_script 105 script: 106 - sh download.sh vendor master vendor:wasm vendor.zip 107 - unzip -q vendor.zip 108 - mkdir -p build 109 - cd build 110 - 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" 111 - cmake --build . --config MinSizeRel 112 - cmake --build . --config MinSizeRel --target install 113 artifacts: 114 paths: [minizinc/] 115 cache: 116 key: "$CI_JOB_NAME" 117 paths: [.ccache, vendor.zip*] 118 when: manual 119 120build:wasm_minimal: 121 image: trzeci/emscripten 122 stage: build 123 variables: 124 MZNARCH: "wasm" 125 CMAKE_ARCH: "Unix Makefiles" 126 tags: [docker] 127 before_script: *download_script 128 script: 129 - sh download.sh vendor master vendor:wasm vendor.zip 130 - unzip -q vendor.zip 131 - mkdir -p build 132 - cd build 133 - 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" 134 - cmake --build . --config MinSizeRel 135 - cmake --build . --config MinSizeRel --target install 136 artifacts: 137 paths: [minizinc/] 138 cache: 139 key: "$CI_JOB_NAME" 140 paths: [.ccache, vendor.zip*] 141 when: manual 142 143# ----------- Trigger FindMUS pipeline ----------- 144 145trigger:findmus: 146 stage: trigger 147 image: dekker1/minibuild:package 148 script: 149 - "curl --request POST --form token=$TRIGGER --form ref=master https://gitlab.com/api/v4/projects/minizinc%2FFindMUS/trigger/pipeline" 150 dependencies: [] 151 tags: [linux, docker] 152 only: [develop]