@@ -21,223 +21,138 @@ env:
2121 EPICS_TEST_IMPRECISE_TIMING : YES
2222
2323jobs :
24- build-client :
25- name : ${{ matrix.name }}
24+
25+ build-linux :
26+ defaults :
27+ run :
28+ working-directory : client
29+ name : ${{ matrix.cmp }} / ${{ matrix.configuration }} / ${{ matrix.os }}
2630 runs-on : ${{ matrix.os }}
27- # Set environment variables from matrix parameters
2831 env :
29- BASE : ${{ matrix.base }}
3032 CMP : ${{ matrix.cmp }}
3133 BCFG : ${{ matrix.configuration }}
32- CI_CROSS_TARGETS : ${{ matrix.cross }}
33- EXTRA : ${{ matrix.extra }}
34- TEST : ${{ matrix.test }}
3534 strategy :
3635 fail-fast : false
3736 matrix :
38- include :
39- - name : Linux-Mingw-7.0
40- os : ubuntu-latest
41- cmp : gcc
42- configuration : default
43- base : " 7.0"
44- cross : " windows-x64-mingw"
45-
46- - name : Linux-static-7.0
47- os : ubuntu-latest
48- cmp : gcc
49- configuration : static
50- base : " 7.0"
51-
52- - name : Linux-3.15
53- os : ubuntu-latest
54- cmp : gcc
55- configuration : default
56- base : " 3.15"
57-
58- - name : Linux-3.14
59- os : ubuntu-latest
60- cmp : gcc
61- configuration : default
62- base : " 3.14"
63-
64- - name : Linux-c++11-7.0
65- os : ubuntu-latest
66- cmp : gcc
67- configuration : static
68- base : " 7.0"
69- extra : " CMD_CXXFLAGS=-std=c++11"
70-
71- - name : Linux-clang-7.0
72- os : ubuntu-latest
73- cmp : clang
74- configuration : default
75- base : " 7.0"
76-
77- - name : Linux-clang-c++11-7.0
78- os : ubuntu-latest
79- cmp : clang
80- configuration : default
81- base : " 7.0"
82- extra : " CMD_CXXFLAGS=-std=c++11"
83-
84- - name : Linux-rtems5-7.0
85- os : ubuntu-20.04
86- cmp : gcc
87- configuration : default
88- base : " 7.0"
89- cross : " RTEMS-pc686-qemu@5"
90-
91- - name : Linux-rtems4.10-7.0
92- os : ubuntu-20.04
93- cmp : gcc
94- configuration : default
95- base : " 7.0"
96- cross : " RTEMS-pc386-qemu@4.10"
97- test : NO
98-
99- - name : Linux-rtems4.9-7.0
100- os : ubuntu-20.04
101- cmp : gcc
102- configuration : default
103- base : " 7.0"
104- cross : " RTEMS-pc386-qemu@4.9"
105-
106- - name : OSX-7.0
107- os : macos-latest
108- cmp : clang
109- configuration : default
110- base : " 7.0"
111-
112- - name : msvc-7.0
113- os : windows-latest
114- cmp : vs2022
115- configuration : default
116- base : " 7.0"
117-
118- - name : msvc-static-7.0
119- os : windows-latest
120- cmp : vs2022
121- configuration : static
122- base : " 7.0"
123-
124- - name : msvc-debug-7.0
125- os : windows-latest
126- cmp : vs2022
127- configuration : debug
128- base : " 7.0"
129-
130- - name : mingw-7.0
131- os : windows-latest
132- cmp : gcc
133- configuration : default
134- base : " 7.0"
37+ os : [ubuntu-24.04, ubuntu-22.04, ubuntu-20.04]
38+ cmp : [gcc, clang]
39+ configuration : [default, static, debug, static-debug]
40+ steps :
41+ - uses : actions/checkout@v4
42+ with :
43+ submodules : true
44+ - name : Prepare and compile dependencies
45+ run : python .ci/cue.py prepare
46+ - name : Build main module (example app)
47+ run : python .ci/cue.py build
48+ - name : Run main module tests
49+ run : python .ci/cue.py -T 15M test
50+ - name : Collect and show test results
51+ run : python .ci/cue.py test-results
13552
53+ build-macos :
13654 defaults :
13755 run :
13856 working-directory : client
57+ name : ${{ matrix.cmp }} / ${{ matrix.configuration }} / ${{ matrix.os }}
58+ runs-on : ${{ matrix.os }}
59+ env :
60+ CMP : ${{ matrix.cmp }}
61+ BCFG : ${{ matrix.configuration }}
62+ strategy :
63+ fail-fast : false
64+ matrix :
65+ os : [macos-14, macos-13, macos-12]
66+ cmp : [clang]
67+ configuration : [default, debug]
13968 steps :
140- - uses : actions/checkout@v3
69+ - uses : actions/checkout@v4
14170 with :
14271 submodules : true
143- - name : Automatic core dump analysis
144- uses : mdavidsaver/ci-core-dumper@master
145- - name : " apt-get install"
146- run : |
147- sudo apt-get update
148- sudo apt-get -y install qemu-system-x86 g++-mingw-w64-x86-64 gdb
149- if : runner.os == 'Linux'
15072 - name : Prepare and compile dependencies
15173 run : python .ci/cue.py prepare
152- - name : Build main module
74+ - name : Build main module (example app)
15375 run : python .ci/cue.py build
15476 - name : Run main module tests
155- run : python .ci/cue.py test
156- - name : Upload tapfiles Artifact
157- if : ${{ always() }}
158- uses : actions/upload-artifact@v3
159- with :
160- name : tapfiles ${{ matrix.name }}
161- path : ' **/O.*/*.tap'
77+ run : python .ci/cue.py -T 15M test
16278 - name : Collect and show test results
163- if : ${{ always() }}
16479 run : python .ci/cue.py test-results
16580
166- docker :
167- name : ${{ matrix.name }}
168- runs-on : ubuntu-latest
169- container :
170- image : ${{ matrix.image }}
81+ build-windows :
82+ defaults :
83+ run :
84+ working-directory : client
85+ name : ${{ matrix.cmp }} / ${{ matrix.configuration }} / ${{ matrix.os }}
86+ runs-on : ${{ matrix.os }}
17187 env :
17288 CMP : ${{ matrix.cmp }}
17389 BCFG : ${{ matrix.configuration }}
174- BASE : ${{ matrix.base }}
175- LIBEVENT_TAG : ${{ matrix.libevent }}
176- EXTRA : ${{ matrix.extra }}
177- VV : " 1"
17890 strategy :
17991 fail-fast : false
18092 matrix :
181- include :
182- - name : Linux centos 7
183- image : centos:7
184- cmp : gcc
185- configuration : default
186- base : " 7.0"
93+ os : [windows-2022, windows-2019]
94+ cmp : [gcc, vs2022, vs2019]
95+ configuration : [default, static, debug, static-debug]
96+ exclude :
97+ - os : windows-2022
98+ cmp : vs2019
99+
100+ - os : windows-2019
101+ cmp : vs2022
187102
188- - name : Linux fedora 35
189- image : fedora:35
190- cmp : gcc
191- configuration : default
192- base : " 7.0"
193103 steps :
194- - name : " Build newer Git"
195- # actions/checkout@v2 wants git >=2.18
196- # centos:7 has 1.8
197- if : matrix.image=='centos:7'
198- run : |
199- yum -y install curl make gcc curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
200- curl https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.29.0.tar.gz | tar -xz
201- cd git-*
202- make -j2 prefix=/usr/local all
203- make prefix=/usr/local install
204- cd ..
205- rm -rf git-*
206- type -a git
207- git --version
208- - name : " Redhat setup"
209- run : |
210- dnfyum() {
211- dnf -y "$@" || yum -y "$@"
212- return $?
213- }
214- dnfyum install python3 gdb make perl gcc-c++ glibc-devel readline-devel ncurses-devel perl-devel libevent-devel net-tools
215- git --version || dnfyum install git
216- # rather than just bite the bullet and link python3 -> python,
217- # people would rather just break all existing scripts...
218- [ -e /usr/bin/python ] || ln -sf /usr/bin/python3 /usr/bin/python
219- python --version
220- - uses : actions/checkout@v3
104+ - uses : actions/checkout@v4
221105 with :
222106 submodules : true
223- - name : Automatic core dumper analysis
224- uses : mdavidsaver/ci-core-dumper@master
225107 - name : Prepare and compile dependencies
226- working-directory : ./client
227108 run : python .ci/cue.py prepare
228- - name : Build main module
229- working-directory : ./client
109+ - name : Build main module (example app)
230110 run : python .ci/cue.py build
231111 - name : Run main module tests
232- working-directory : ./client
233- run : python .ci/cue.py test
234- - name : Upload tapfiles Artifact
235- if : ${{ always() }}
236- uses : actions/upload-artifact@v3
112+ run : python .ci/cue.py -T 15M test
113+ - name : Collect and show test results
114+ run : python .ci/cue.py test-results
115+
116+ build-cross :
117+ defaults :
118+ run :
119+ working-directory : client
120+ name : cross ${{ matrix.cross }} / ${{ matrix.cmp }} / ${{ matrix.configuration }}
121+ runs-on : ubuntu-latest
122+ env :
123+ CMP : gcc
124+ BCFG : default
125+ CI_CROSS_TARGETS : ${{ matrix.cross }}
126+ TEST : ${{ matrix.test }}
127+ APT : re2c
128+ strategy :
129+ fail-fast : false
130+ matrix :
131+ # configuration: [default, static, debug, static-debug]
132+ configuration : [default]
133+ cross :
134+ - linux-aarch64
135+ - linux-arm@arm-linux-gnueabi
136+ - linux-arm@arm-linux-gnueabihf
137+ - linux-ppc
138+ - linux-ppc64
139+ - win32-x86-mingw
140+ - windows-x64-mingw
141+ - RTEMS-pc386-qemu@4.9
142+ - RTEMS-pc386-qemu@4.10
143+ - RTEMS-pc686-qemu@5
144+ include :
145+ - cross : RTEMS-pc386-qemu@4.10
146+ test : NO
147+ steps :
148+ - uses : actions/checkout@v4
237149 with :
238- name : tapfiles ${{ matrix.name }}
239- path : ' **/O.*/*.tap'
150+ submodules : true
151+ - name : Prepare and compile dependencies
152+ run : python .ci/cue.py prepare
153+ - name : Build main module (example app)
154+ run : python .ci/cue.py build
155+ - name : Run main module tests
156+ run : python .ci/cue.py -T 15M test
240157 - name : Collect and show test results
241- if : ${{ always() }}
242- working-directory : ./client
243158 run : python .ci/cue.py test-results
0 commit comments