forked from igraph/igraph
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathazure-pipelines.yml
163 lines (136 loc) · 5.44 KB
/
azure-pipelines.yml
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
pool:
vmImage: 'ubuntu-latest'
variables:
CMAKE_GENERATOR: Ninja
CCACHE_DIR: $(Pipeline.Workspace)/ccache
CCACHE_MAXSIZE: 256M
ASAN_OPTIONS: detect_stack_use_after_return=1:color=always
UBSAN_OTIONS: print_stacktrace=1:color=always
OMP_NUM_THREADS: 1
jobs:
# In this test we install and generate locales so that igraph_enter/exit_safelocale() can be tested
- job: linux_static_vendored
steps:
- script: |
sudo apt-get update
sudo apt-get install ninja-build ccache language-pack-de -y
displayName: Install dependencies
- script: |
sudo locale-gen de_DE
sudo update-locale
displayName: Generate locales
- template: .azure/build.yml
parameters:
build_type: Debug
extra_cmake_args: '-DUSE_SANITIZER=Address\;Undefined -DCMAKE_C_FLAGS="-Og -fno-sanitize-recover=undefined -fno-sanitize=float-divide-by-zero" -DCMAKE_CXX_FLAGS="-Og -fno-sanitize-recover=undefined -fno-sanitize=float-divide-by-zero"'
- job: linux_static_vendored_32
steps:
- script: sudo apt-get install ninja-build ccache -y
displayName: Install dependencies
- template: .azure/build.yml
parameters:
build_type: Debug
extra_cmake_args: '-DUSE_SANITIZER=Address\;Undefined -DCMAKE_C_FLAGS="-Og -fno-sanitize-recover=undefined -fno-sanitize=float-divide-by-zero" -DCMAKE_CXX_FLAGS="-Og -fno-sanitize-recover=undefined -fno-sanitize=float-divide-by-zero" -DIGRAPH_INTEGER_SIZE=32'
- job: linux_static_external
steps:
- script: sudo apt-get install ninja-build ccache libgmp-dev libglpk-dev libarpack2-dev libopenblas-dev -y
displayName: Install dependencies
- template: .azure/build.yml
parameters:
int_blas: false
int_lapack: false
int_arpack: false
int_gmp: false
int_glpk: false
extra_cmake_args: '-DBLA_VENDOR=OpenBLAS'
- job: linux_shared_vendored
steps:
- script: sudo apt-get install ninja-build ccache -y
displayName: Install dependencies
- template: .azure/build.yml
parameters:
build_shared: true
- job: linux_shared_external
steps:
- script: sudo apt-get install ninja-build ccache libgmp-dev libglpk-dev libarpack2-dev libopenblas-dev -y
displayName: Install dependencies
- template: .azure/build.yml
parameters:
int_blas: false
int_lapack: false
int_arpack: false
int_gmp: false
int_glpk: false
extra_cmake_args: '-DBLA_VENDOR=OpenBLAS'
build_shared: true
- job: linux_clang_15
pool:
vmImage: 'ubuntu-22.04'
steps:
- script: |
sudo apt-get install ninja-build ccache -y
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 15
displayName: Install dependencies
- template: .azure/build.yml
parameters:
build_type: Debug
extra_cmake_args: '-DUSE_SANITIZER=Address\;Undefined -DCMAKE_C_FLAGS="-Og -fno-sanitize-recover=undefined -fno-sanitize=float-divide-by-zero" -DCMAKE_CXX_FLAGS="-Og -fno-sanitize-recover=undefined -fno-sanitize=float-divide-by-zero" -DCMAKE_C_COMPILER=clang-15 -DCMAKE_CXX_COMPILER=clang++-15'
- job: linux_x87
steps:
- script: sudo apt-get install ninja-build ccache -y
displayName: Install dependencies
- template: .azure/build.yml
parameters:
extra_cmake_args: '-DCMAKE_C_FLAGS="-mfpmath=387" -DCMAKE_CXX_FLAGS="-mfpmath=387"'
- job: linux_alpine
steps:
# https://github.com/alpinelinux/alpine-chroot-install
- bash: |
set -e
wget https://raw.githubusercontent.com/alpinelinux/alpine-chroot-install/v0.14.0/alpine-chroot-install && echo 'ccbf65f85cdc351851f8ad025bb3e65bae4d5b06 alpine-chroot-install' | sha1sum -c || exit 1
alpine() { /alpine/enter-chroot -u "$USER" "$@"; }
sudo sh alpine-chroot-install -p 'build-base linux-headers git cmake ninja bison flex gmp-dev'
mkdir build && cd build
alpine cmake .. -GNinja -DIGRAPH_USE_INTERNAL_BLAS=1 -DIGRAPH_USE_INTERNAL_LAPACK=1 -DIGRAPH_USE_INTERNAL_ARPACK=1 -DIGRAPH_USE_INTERNAL_GLPK=1 -DIGRAPH_USE_INTERNAL_GMP=1 -DIGRAPH_ENABLE_TLS=1 -DIGRAPH_VERIFY_FINALLY_STACK=1
alpine cmake --build . --target build_tests
alpine ctest -j `nproc` --output-on-failure
- job: macos
pool:
vmImage: macos-latest
steps:
- script: |
brew install ninja ccache
displayName: Install dependencies
- template: .azure/build.yml
parameters:
int_blas: false
int_lapack: false
- job: windows_static
pool:
vmImage: windows-2019
steps:
- template: .azure/build-win.yml
- job: windows_shared
pool:
vmImage: windows-2019
steps:
- template: .azure/build-win.yml
parameters:
build_shared: true
vcpkg_target_triplet: x64-windows
- job: documentation
steps:
- script: sudo apt-get update
displayName: Update package registry
- script: sudo apt-get install ninja-build xmlto texinfo source-highlight libxml2-utils xsltproc fop -y
displayName: Install dependencies
- task: CMake@1
displayName: CMake
inputs:
cmakeArgs: '..'
- task: CMake@1
displayName: Doc build
inputs:
cmakeArgs: '--build . --target doc'