-
Notifications
You must be signed in to change notification settings - Fork 79
216 lines (181 loc) · 5.52 KB
/
Copy pathci-scripts.yml
File metadata and controls
216 lines (181 loc) · 5.52 KB
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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
name: ADCore
# Cancel in-progress runs of this workflow when a new run is triggered on the same pull request or branch
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
# Trigger on pushes and PRs to any branch
on:
push:
paths-ignore:
- '**/*.md'
- '**/*.txt'
pull_request:
env:
SETUP_PATH: .ci-local:.ci
jobs:
test:
name: ${{ matrix.os }}/${{ matrix.deps }}/${{ matrix.base }}/${{ matrix.cmp }}/${{ matrix.configuration }}
runs-on: ${{ matrix.os }}
env:
CMP: ${{ matrix.cmp }}
BCFG: ${{ matrix.configuration }}
BASE: ${{ matrix.base }}
SET: ${{ matrix.deps }}
EXTRA: ${{ matrix.extra }}
strategy:
fail-fast: false
matrix:
# Job names also name artifacts, character limitations apply
include:
- os: ubuntu-latest
cmp: gcc
configuration: default
base: "7.0"
deps: os
extra: "CMD_CFLAGS='-fvisibility=hidden'
CMD_CXXFLAGS='-fvisibility=hidden -fvisibility-inlines-hidden'"
test: true
- os: ubuntu-latest
cmp: gcc
configuration: static
base: "7.0"
deps: os
test: true
# Use linux/adsupport/shared case for coverage check
- os: ubuntu-latest
cmp: gcc
configuration: default
base: "7.0"
deps: adsupport
extra: "CMD_CFLAGS='--coverage'
CMD_CXXFLAGS='--coverage'
CMD_LDFLAGS='--coverage'"
test: true
coverage: true
- os: ubuntu-latest
cmp: gcc
configuration: static
base: "7.0"
deps: adsupport
- os: ubuntu-22.04
cmp: gcc
configuration: default
base: "7.0"
deps: os
- os: ubuntu-latest
cmp: gcc
configuration: default
base: "3.15"
deps: os
- os: ubuntu-latest
cmp: gcc
configuration: static
base: "3.15"
deps: os
- name: Win2022 Base7.0 DLL
os: windows-2022
cmp: vs2022
configuration: default
base: "7.0"
deps: adsupport
- name: Win2022 Base7.0 static
os: windows-2022
cmp: vs2022
configuration: static
base: "7.0"
deps: adsupport
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Install TIRPC Headers
if: runner.os == 'Linux'
run: sudo apt-get install -y libtirpc-dev
- name: Install boost packages for unit tests
if: ${{ runner.os == 'Linux' }}
run: sudo apt-get install -y libboost-test-dev libboost-system-dev
- name: Install Linux OS Deps
if: ${{ matrix.deps == 'os' && runner.os == 'Linux' }}
run: |
sudo apt-get update
sudo apt-get -y install \
libgraphicsmagick++-dev libhdf5-dev libjpeg-dev libnetcdf-dev libtiff-dev libxml2-dev libz-dev \
libblosc-dev libnexus-dev libnetcdf-dev libusb-1.0-0-dev
cat <<EOF > configure/CONFIG_SITE.linux-x86_64.Common
WITH_PVA=YES
WITH_BOOST=YES
BOOST_EXTERNAL=YES
WITH_HDF5=YES
HDF5_EXTERNAL=YES
USR_CPPFLAGS+=-I/usr/include/hdf5/serial
USR_LDFLAGS+=-L/usr/lib/x86_64-linux-gnu/hdf5/serial
XML2_EXTERNAL=YES
XML2_INCLUDE=/usr/include/libxml2
WITH_NETCDF=YES
NETCDF_EXTERNAL=YES
WITH_NEXUS=YES
NEXUS_EXTERNAL=YES
USR_CPPFLAGS+=-I/usr/include/nexus
WITH_TIFF=YES
TIFF_EXTERNAL=YES
WITH_JPEG=YES
JPEG_EXTERNAL=YES
WITH_SZIP=NO
WITH_ZLIB=YES
ZLIB_EXTERNAL=YES
WITH_BLOSC=YES
BLOSC_EXTERNAL=YES
WITH_BITSHUFFLE=NO
EOF
cat configure/CONFIG_SITE.linux-x86_64.Common
- name: Prepare and compile EPICS dependencies
run: python .ci/cue.py prepare
- name: Configure ADSupport Deps
if: ${{ matrix.deps == 'adsupport' }}
shell: bash
run: |
cat <<EOF >> configure/CONFIG_SITE
WITH_PVA=YES
WITH_BOOST=${{ (runner.os == 'Linux' && matrix.test) && 'YES' || 'NO' }}
BOOST_EXTERNAL=YES
WITH_HDF5=YES
HDF5_EXTERNAL=NO
XML2_EXTERNAL=NO
WITH_NETCDF=YES
NETCDF_EXTERNAL=NO
WITH_NEXUS=YES
NEXUS_EXTERNAL=NO
WITH_TIFF=YES
TIFF_EXTERNAL=NO
WITH_JPEG=YES
JPEG_EXTERNAL=NO
WITH_SZIP=YES
SZIP_EXTERNAL=NO
WITH_ZLIB=YES
ZLIB_EXTERNAL=NO
WITH_BLOSC=YES
BLOSC_EXTERNAL=NO
WITH_BITSHUFFLE=YES
BITSHUFFLE_EXTERNAL=NO
HDF5_STATIC_BUILD=\$(STATIC_BUILD)
EOF
- name: Build main module
run: python .ci/cue.py build
- name: Run test
if: ${{ matrix.test }}
shell: bash
run: ./bin/*/plugin-test
- name: Generate coverage report
if: ${{ matrix.coverage }}
run: |
sudo apt-get -y install lcov
lcov --no-external --capture \
--directory ADApp/ADSrc/ \
--directory ADApp/pluginSrc/ \
--output-file ci/coverage.info
- name: Upload to Coveralls
if: ${{ matrix.coverage }}
uses: coverallsapp/github-action@v2
with:
file: ci/coverage.info
format: lcov