-
Notifications
You must be signed in to change notification settings - Fork 2
111 lines (99 loc) · 4.71 KB
/
build.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
on: [push, pull_request]
name: build
jobs:
haskell-MIP:
name: haskell-MIP
runs-on: ${{ matrix.os }}
env:
STACK_YAML: ${{ matrix.stack_yaml }}
strategy:
matrix:
include:
- ghc: '8.8.4'
os: ubuntu-latest
stack_yaml: 'stack-ghc-8.8.yaml'
coveralls: true
flags: '--coverage --haddock --no-haddock-deps --flag MIP:TestCBC --flag MIP:TestGlpsol --flag MIP:TestLPSolve'
- ghc: '8.8.4'
os: ubuntu-latest
stack_yaml: 'stack-ghc-8.8.yaml'
coveralls: false
flags: '--flag MIP:TestCBC --flag MIP:TestGlpsol --flag MIP:TestLPSolve --flag MIP:-WithZLIB'
- ghc: '8.8.4'
os: macos-latest
stack_yaml: 'stack-ghc-8.8.yaml'
coveralls: false
flags: '--flag MIP:TestCBC --flag MIP:TestGlpsol --flag MIP:TestLPSolve'
- ghc: '8.8.4'
os: windows-latest
stack_yaml: 'stack-ghc-8.8.yaml'
coveralls: false
flags: '--arch x86_64 --flag MIP:TestCBC --flag MIP:TestGlpsol --flag MIP:TestLPSolve'
flags_test: '-j1' # https://github.com/commercialhaskell/stack/issues/5024
windows_32_or_64: '64'
- ghc: '8.6.3'
os: windows-latest
stack_yaml: 'stack-windows-i386.yaml'
coveralls: false
flags: '--arch i386 --flag MIP:TestCBC --flag MIP:TestGlpsol --flag MIP:TestLPSolve'
flags_test: '-j1' # https://github.com/commercialhaskell/stack/issues/5024
windows_32_or_64: '32'
steps:
- uses: actions/checkout@v2
- uses: actions/setup-haskell@v1.1.4
name: Setup Haskell
with:
ghc-version: ${{ matrix.ghc }}
enable-stack: true
stack-version: 'latest'
stack-no-global: true
stack-setup-ghc: true
- name: Install packages (Linux)
if: runner.os == 'Linux'
run: sudo apt-get install coinor-cbc glpk-utils libglpk-dev lp-solve
- name: Install packages (macOS)
if: runner.os == 'macOS'
run: |
brew install cbc glpk
curl -L https://jaist.dl.sourceforge.net/project/lpsolve/lpsolve/5.5.2.11/lp_solve_5.5.2.11_source.tar.gz | tar xz
(cd lp_solve_5.5/lp_solve && sh ccc.osx)
echo "${GITHUB_WORKSPACE}/lp_solve_5.5/lp_solve/bin/osx64" >> $GITHUB_PATH
- name: Install packages (Windows)
if: runner.os == 'Windows'
shell: bash
run: |
echo $GITHUB_WORKSPACE >> $GITHUB_PATH
curl -oCOIN-OR-1.8.0-win32-msvc12.zip -L --insecure https://www.coin-or.org/download/binary/OptimizationSuite/COIN-OR-1.8.0-win32-msvc12.zip
7z e COIN-OR-1.8.0-win32-msvc12.zip COIN-OR/win32-msvc12/bin/cbc.exe
curl -owinglpk-4.65.zip -L --insecure https://jaist.dl.sourceforge.net/project/winglpk/winglpk/GLPK-4.65/winglpk-4.65.zip
7z x winglpk-4.65.zip
cp glpk-4.65/w${{ matrix.windows_32_or_64 }}/glpk_4_65.lib glpk-4.65/w${{ matrix.windows_32_or_64 }}/glpk.lib
echo ${GITHUB_WORKSPACE}\\glpk-4.65\\w${{ matrix.windows_32_or_64 }} >> $GITHUB_PATH
echo GLPK_LIB_DIR=${GITHUB_WORKSPACE}\\glpk-4.65\\w${{ matrix.windows_32_or_64 }} >> $GITHUB_ENV
echo GLPK_INCLUDE_DIR=${GITHUB_WORKSPACE}\\glpk-4.65\\src >> $GITHUB_ENV
curl -olp_solve_5.5.2.5_exe_win${{ matrix.windows_32_or_64 }}.zip -L --insecure https://jaist.dl.sourceforge.net/project/lpsolve/lpsolve/5.5.2.5/lp_solve_5.5.2.5_exe_win${{ matrix.windows_32_or_64 }}.zip
7z x lp_solve_5.5.2.5_exe_win${{ matrix.windows_32_or_64 }}.zip
- uses: actions/cache@v1
name: Cache ~/.stack
with:
path: ~/.stack
key: ${{ runner.os }}-${{ matrix.ghc }}-stack
# https://github.com/commercialhaskell/stack/issues/5405
- name: Clear setup-exe-cache directory
if: runner.os == 'macOS'
continue-on-error: true
run: rm -r ~/.stack/setup-exe-cache
- name: Build
shell: bash
run: stack build --test --no-run-tests --bench --no-run-benchmarks ${{ matrix.flags }} --extra-include-dirs=$GLPK_INCLUDE_DIR --extra-lib-dirs=$GLPK_LIB_DIR
- name: Test
shell: bash
run: stack test ${{ matrix.flags }} ${{ matrix.flags_test }} --extra-include-dirs=$GLPK_INCLUDE_DIR --extra-lib-dirs=$GLPK_LIB_DIR
- name: HPC Coveralls
if: ${{ matrix.coveralls }}
continue-on-error: true
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
run: |
curl -L https://github.com/lehins/stack-hpc-coveralls/releases/download/v0.0.6.0/shc.tar.gz | tar -xz
./shc --repo-token="$COVERALLS_REPO_TOKEN" combined all