Skip to content

Commit ba508f5

Browse files
committed
Github action: Update CI config
1 parent 123e859 commit ba508f5

File tree

6 files changed

+215
-124
lines changed

6 files changed

+215
-124
lines changed

.github/actions/build/action.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
name: Build
22

33
runs:
4-
using: composite
5-
steps:
6-
- name: Build
7-
run: make VERBOSE=1
8-
shell: bash
9-
working-directory: build
4+
using: composite
5+
steps:
6+
- name: Build
7+
run: make VERBOSE=1
8+
shell: bash
9+
working-directory: build
1010

.github/actions/cmake/action.yml

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
name: Build
1+
name: CMake
22

33
runs:
4-
using: composite
5-
steps:
6-
- name: Create build directory
7-
run: mkdir build
8-
shell: bash
9-
- name: Configure
10-
run: cmake -LA .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
11-
shell: bash
12-
working-directory: build
4+
using: composite
5+
steps:
6+
- name: Create build directory
7+
run: mkdir build
8+
shell: bash
9+
- name: Configure
10+
run: |
11+
cmake -LA .. \
12+
-DCMAKE_BUILD_TYPE=${BUILD_TYPE}
13+
shell: bash
14+
working-directory: build
1315

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: Install Prerequisites from git
2+
3+
runs:
4+
using: composite
5+
steps:
6+
- name: Install from git
7+
run: |
8+
git clone --quiet --depth 1 https://github.com/osmcode/libosmium.git ../libosmium
9+
git clone --quiet --depth 1 https://github.com/mapbox/protozero.git ../protozero
10+
shell: bash
11+
Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
1-
name: Install Prerequisites on macOS
1+
name: Install homebrew packages on macOS
22

33
runs:
44
using: composite
5-
65
steps:
76
- name: Install homebrew packages
87
run: |
9-
brew install boost gdal spatialite-tools
10-
shell: bash
11-
- name: Install from git
12-
run: |
13-
git clone --quiet --depth 1 https://github.com/osmcode/libosmium.git ../libosmium
14-
git clone --quiet --depth 1 https://github.com/mapbox/protozero.git ../protozero
8+
brew install \
9+
boost \
10+
gdal \
11+
spatialite-tools
1512
shell: bash
1613

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,15 @@
1-
name: Install Prerequisites on Ubuntu
1+
name: Install apt packages on Ubuntu/Debian
22

33
runs:
44
using: composite
5-
65
steps:
76
- name: Install packages
87
run: |
9-
sudo apt-get update -q
8+
sudo apt-get update -qq
109
sudo apt-get install -yq \
1110
libboost-dev \
12-
libboost-filesystem-dev \
1311
libboost-program-options-dev \
14-
libgdal-dev \
15-
libproj-dev
16-
shell: bash
17-
- name: Install from git
18-
run: |
19-
git clone --quiet --depth 1 https://github.com/osmcode/libosmium.git ../libosmium
20-
git clone --quiet --depth 1 https://github.com/mapbox/protozero.git ../protozero
12+
libbz2-dev \
13+
libgdal-dev
2114
shell: bash
2215

.github/workflows/ci.yml

Lines changed: 177 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -3,111 +3,199 @@ name: CI
33
on: [ push, pull_request ]
44

55
jobs:
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

Comments
 (0)