forked from igraph/igraph
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathazure-pipelines.yml
157 lines (131 loc) · 5.34 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
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_OPTIONS: 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 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_19
steps:
- script: |
sudo apt-get install ninja-build ccache -y
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 19
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-19 -DCMAKE_CXX_COMPILER=clang++-19'
- 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 libxml2-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-latest
steps:
- template: .azure/build-win.yml
- job: windows_shared
pool:
vmImage: windows-latest
steps:
- template: .azure/build-win.yml
parameters:
build_shared: true
vsver: '14.4' # latest VS2022
vcpkg_target_triplet: x64-windows
- job: documentation
steps:
- script: sudo apt-get install ninja-build xmlto texinfo source-highlight libxml2-utils xsltproc fop docbook2x -y
displayName: Install dependencies
- task: CMake@1
displayName: CMake
inputs:
cmakeArgs: '..'
- task: CMake@1
displayName: Doc build
inputs:
cmakeArgs: '--build . --target doc'