@@ -3,111 +3,199 @@ name: CI
33on : [ push, pull_request ]
44
55jobs :
6- ubuntu18-clang9-dev :
7- runs-on : ubuntu-18.04
8- env :
9- CC : clang-9
10- CXX : clang++-9
11- BUILD_TYPE : Dev
12- steps :
13- - uses : actions/checkout@v2
14- - uses : ./.github/actions/install-ubuntu
15- - uses : ./.github/actions/cmake
16- - uses : ./.github/actions/build
17-
18- ubuntu20-clang10-dev :
19- runs-on : ubuntu-20.04
20- env :
21- CC : clang-10
22- CXX : clang++-10
23- BUILD_TYPE : Dev
24- steps :
25- - uses : actions/checkout@v2
26- - uses : ./.github/actions/install-ubuntu
27- - uses : ./.github/actions/cmake
28- - uses : ./.github/actions/build
29-
30- ubuntu20-clang10-release :
31- runs-on : ubuntu-20.04
32- env :
33- CC : clang-10
34- CXX : clang++-10
35- BUILD_TYPE : Release
36- steps :
37- - uses : actions/checkout@v2
38- - uses : ./.github/actions/install-ubuntu
39- - uses : ./.github/actions/cmake
40- - uses : ./.github/actions/build
41-
42- ubuntu18-gcc7-dev :
43- runs-on : ubuntu-18.04
44- env :
45- CC : gcc-7
46- CXX : g++-7
47- BUILD_TYPE : Dev
6+ linux :
7+ runs-on : ubuntu-latest
8+ timeout-minutes : 40
9+ strategy :
10+ fail-fast : false
11+ matrix :
12+ name : [Ubuntu-20, Ubuntu-22, Ubuntu-24, Debian-11, Debian-12, Debian-Testing, Debian-Experimental, Fedora-37, Fedora-38, Fedora-39, Fedora-40]
13+ build_type : [Dev]
14+ cpp_compiler : [g++]
15+ cpp_version : [c++11]
16+ include :
17+ - name : Ubuntu-20
18+ # Uses gcc 9.3.0, clang 10.0.0, cmake 3.16.3
19+ image : " ubuntu:20.04"
20+ ubuntu : 20
21+ - name : Ubuntu-22
22+ # Uses gcc 12.2.0, clang 15.0.7, cmake 3.24.2
23+ image : " ubuntu:22.04"
24+ ubuntu : 22
25+ CXXFLAGS : -Wno-stringop-overread
26+ - name : Ubuntu-24
27+ # Uses gcc 14.2.0, clang 18.1.3, cmake 3.28.3
28+ image : " ubuntu:24.04"
29+ ubuntu : 22
30+ CXXFLAGS : -Wno-stringop-overread
31+ - name : Debian-11
32+ # Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4
33+ image : " debian:bullseye"
34+ - name : Debian-11
35+ image : " debian:bullseye"
36+ cpp_version : c++17
37+ - name : Debian-11
38+ image : " debian:bullseye"
39+ cpp_version : c++20
40+ - name : Debian-11
41+ image : " debian:bullseye"
42+ c_compiler : clang
43+ cpp_compiler : clang++
44+ - name : Debian-11
45+ image : " debian:bullseye"
46+ c_compiler : clang
47+ cpp_compiler : clang++
48+ cpp_version : c++17
49+ - name : Debian-11
50+ image : " debian:bullseye"
51+ c_compiler : clang
52+ cpp_compiler : clang++
53+ cpp_version : c++20
54+ - name : Debian-11
55+ image : " debian:bullseye"
56+ build_type : RelWithDebInfo
57+ - name : Debian-12
58+ # Uses gcc 12.2.0, clang 15.0.6, cmake 3.25.1
59+ image : " debian:bookworm"
60+ CXXFLAGS : -Wno-stringop-overread
61+ - name : Debian-12
62+ image : " debian:bookworm"
63+ cpp_version : c++17
64+ CXXFLAGS : -Wno-stringop-overread
65+ - name : Debian-12
66+ image : " debian:bookworm"
67+ cpp_version : c++20
68+ CXXFLAGS : -Wno-stringop-overread
69+ - name : Debian-12
70+ image : " debian:bookworm"
71+ c_compiler : clang
72+ cpp_compiler : clang++
73+ - name : Debian-12
74+ image : " debian:bookworm"
75+ c_compiler : clang
76+ cpp_compiler : clang++
77+ cpp_version : c++17
78+ - name : Debian-12
79+ image : " debian:bookworm"
80+ c_compiler : clang
81+ cpp_compiler : clang++
82+ cpp_version : c++20
83+ - name : Debian-12
84+ image : " debian:bookworm"
85+ build_type : RelWithDebInfo
86+ CXXFLAGS : -Wno-stringop-overread
87+ - name : Debian-Testing
88+ image : " debian:testing"
89+ CXXFLAGS : -Wno-stringop-overread
90+ - name : Debian-Testing
91+ image : " debian:testing"
92+ c_compiler : clang
93+ cpp_compiler : clang++
94+ - name : Debian-Experimental
95+ image : " debian:experimental"
96+ CXXFLAGS : -Wno-stringop-overread
97+ - name : Debian-Experimental
98+ image : " debian:experimental"
99+ c_compiler : clang
100+ cpp_compiler : clang++
101+ - name : Fedora-37
102+ # Uses gcc 12.3.1, clang 15.0.7, cmake 3.26.4
103+ image : " fedora:37"
104+ CXXFLAGS : -Wno-stringop-overread
105+ - name : Fedora-38
106+ # Uses gcc 13.0.1, clang 16.0.5, cmake 3.26.4
107+ image : " fedora:38"
108+ CXXFLAGS : -Wno-stringop-overread
109+ - name : Fedora-39
110+ image : " fedora:39"
111+ CXXFLAGS : -Wno-stringop-overread
112+ - name : Fedora-40
113+ image : " fedora:40"
114+ CXXFLAGS : -Wno-stringop-overread
115+ container :
116+ image : ${{ matrix.image }}
117+ env :
118+ LANG : en_US.UTF-8
119+ BUILD_TYPE : ${{ matrix.build_type }}
120+ CC : ${{ matrix.c_compiler }}
121+ CXX : ${{ matrix.cpp_compiler }}
122+ CXXFLAGS : ${{ matrix.CXXFLAGS }}
123+ LDFLAGS : ${{ matrix.LDFLAGS }}
124+ CPP_VERSION : ${{ matrix.cpp_version }}
125+ APT_LISTCHANGES_FRONTEND : none
126+ DEBIAN_FRONTEND : noninteractive
48127 steps :
49- - uses : actions/checkout@v2
50- - uses : ./.github/actions/install-ubuntu
128+ - name : Prepare container (apt)
129+ shell : bash
130+ if : startsWith(matrix.image, 'debian:') || startsWith(matrix.image, 'ubuntu:')
131+ run : |
132+ apt-get update -qq
133+ apt-get install -yq \
134+ clang \
135+ cmake \
136+ g++ \
137+ git \
138+ libboost-dev \
139+ libboost-program-options-dev \
140+ libbz2-dev \
141+ libexpat1-dev \
142+ libgdal-dev \
143+ libsqlite3-dev \
144+ make \
145+ zlib1g-dev
146+ - name : Prepare container (dnf)
147+ shell : bash
148+ if : startsWith(matrix.image, 'fedora:')
149+ run : |
150+ dnf install --quiet --assumeyes \
151+ boost-devel \
152+ bzip2-devel \
153+ cmake \
154+ expat-devel \
155+ gcc-c++ \
156+ gdal-devel \
157+ git \
158+ make \
159+ sqlite-devel \
160+ zlib-devel
161+ - uses : actions/checkout@v4
162+ - uses : ./.github/actions/install-from-git
51163 - uses : ./.github/actions/cmake
52164 - uses : ./.github/actions/build
53165
54- ubuntu20-gcc9-dev :
55- runs-on : ubuntu-20 .04
166+ ubuntu-latest :
167+ runs-on : ubuntu-24 .04
56168 env :
57- CC : gcc-9
58- CXX : g ++-9
169+ CC : clang-18
170+ CXX : clang ++-18
59171 BUILD_TYPE : Dev
60172 steps :
61- - uses : actions/checkout@v2
173+ - uses : actions/checkout@v4
62174 - uses : ./.github/actions/install-ubuntu
175+ - uses : ./.github/actions/install-from-git
63176 - uses : ./.github/actions/cmake
64177 - uses : ./.github/actions/build
65178
66- ubuntu20-gcc10-release :
67- runs-on : ubuntu-20.04
68- env :
69- CC : gcc-10
70- CXX : g++-10
71- BUILD_TYPE : Release
72- steps :
73- - uses : actions/checkout@v2
74- - uses : ./.github/actions/install-ubuntu
75- - uses : ./.github/actions/cmake
76- - uses : ./.github/actions/build
77-
78- macos10-dev :
79- runs-on : macos-10.15
80- env :
81- CC : clang
82- CXX : clang++
83- BUILD_TYPE : Dev
84- steps :
85- - uses : actions/checkout@v2
86- - uses : ./.github/actions/install-macos
87- - uses : ./.github/actions/cmake
88- - uses : ./.github/actions/build
89-
90- macos11-dev :
91- runs-on : macos-11.0
92- env :
93- CC : clang
94- CXX : clang++
95- BUILD_TYPE : Dev
96- steps :
97- - uses : actions/checkout@v2
98- - uses : ./.github/actions/install-macos
99- - uses : ./.github/actions/cmake
100- - uses : ./.github/actions/build
101-
102- macos11-release :
103- runs-on : macos-11.0
179+ macos :
180+ strategy :
181+ fail-fast : false
182+ matrix :
183+ os :
184+ - " macos-14"
185+ - " macos-15"
186+ build_type : [Dev]
187+ include :
188+ - os : " macos-14"
189+ build_type : Release
190+ runs-on : ${{ matrix.os }}
104191 env :
105192 CC : clang
106193 CXX : clang++
107- BUILD_TYPE : Release
194+ BUILD_TYPE : ${{ matrix.build_type }}
108195 steps :
109- - uses : actions/checkout@v2
196+ - uses : actions/checkout@v4
110197 - uses : ./.github/actions/install-macos
198+ - uses : ./.github/actions/install-from-git
111199 - uses : ./.github/actions/cmake
112200 - uses : ./.github/actions/build
113201
0 commit comments