Skip to content

Commit 97456a4

Browse files
dwsuseigaw
authored andcommitted
build: Move CI build steps into a scripts
Move the build instruction into a script. This allows to run these steps also locally. Also disable the fallback static library build as it is clearly not working because in the dependencies rely to link against a dynamic glibc. Instead just add a minimal static build without fallbacks. While we are at it, also add a debug clang build. Signed-off-by: Daniel Wagner <[email protected]>
1 parent 5820c8c commit 97456a4

2 files changed

Lines changed: 245 additions & 203 deletions

File tree

.github/workflows/build.yml

Lines changed: 55 additions & 203 deletions
Original file line numberDiff line numberDiff line change
@@ -15,203 +15,125 @@ jobs:
1515
runs-on: ubuntu-latest
1616
steps:
1717
- name: install libraries
18-
run: sudo apt-get install gcc pkg-config libjson-c-dev libssl-dev python3-dev
18+
run: sudo apt-get install meson gcc pkg-config libjson-c-dev libssl-dev python3-dev
1919
- uses: actions/checkout@v3
2020
- uses: actions/setup-python@v4
2121
with:
2222
python-version: '3.x'
23-
- uses: BSFishy/[email protected]
24-
name: build
25-
with:
26-
action: build
27-
setup-options: >
28-
--werror
29-
--buildtype=debug
30-
meson-version: 0.61.2
31-
- uses: BSFishy/[email protected]
32-
name: test
33-
with:
34-
action: test
35-
meson-version: 0.61.2
23+
- name: build
24+
run: |
25+
scripts/build.sh -b debug -c gcc
3626
- uses: actions/upload-artifact@v3
3727
name: upload logs
3828
if: failure()
3929
with:
4030
name: logs files
4131
path: |
42-
build/meson-logs/*.txt
32+
.build-ci/meson-logs/*.txt
4333
4434
gcc-release:
4535
name: gcc release
4636
runs-on: ubuntu-latest
4737
steps:
4838
- name: install libraries
49-
run: sudo apt-get install gcc pkg-config libjson-c-dev libdbus-1-dev python3-dev
39+
run: sudo apt-get install meson gcc pkg-config libjson-c-dev libdbus-1-dev python3-dev
5040
- uses: actions/checkout@v3
5141
- uses: actions/setup-python@v4
5242
with:
5343
python-version: '3.x'
54-
- uses: BSFishy/[email protected]
55-
name: build
56-
with:
57-
action: build
58-
setup-options: >
59-
--werror
60-
--buildtype=release
61-
-Dlibdbus=enabled
62-
meson-version: 0.61.2
63-
- uses: BSFishy/[email protected]
64-
name: test
65-
with:
66-
action: test
67-
meson-version: 0.61.2
44+
- name: build
45+
run: |
46+
scripts/build.sh -b release -c gcc libdbus
6847
- uses: actions/upload-artifact@v3
6948
name: upload logs
7049
if: failure()
7150
with:
7251
name: log files
7352
path: |
74-
build/meson-logs/*.txt
53+
.build-ci/meson-logs/*.txt
7554
76-
clang-release:
77-
name: clang release
55+
gcc-release-static:
56+
name: gcc release static
7857
runs-on: ubuntu-latest
7958
steps:
8059
- name: install libraries
81-
run: sudo apt-get install clang pkg-config libjson-c-dev libdbus-1-dev python3-dev
60+
run: sudo apt-get install meson gcc pkg-config libpam-dev libcap-ng-dev
8261
- uses: actions/checkout@v3
8362
- uses: actions/setup-python@v4
8463
with:
8564
python-version: '3.x'
86-
- uses: BSFishy/[email protected]
87-
name: build
88-
with:
89-
action: build
90-
setup-options: >
91-
--werror
92-
--buildtype=release
93-
--cross-file=.github/cross/clang.txt
94-
-Dlibdbus=enabled
95-
meson-version: 0.61.2
96-
- uses: BSFishy/[email protected]
97-
name: test
98-
with:
99-
action: test
100-
meson-version: 0.61.2
65+
- name: build
66+
run: |
67+
scripts/build.sh -b release -c gcc static
10168
- uses: actions/upload-artifact@v3
10269
name: upload logs
10370
if: failure()
10471
with:
10572
name: log files
10673
path: |
107-
build/meson-logs/*.txt
74+
.build-ci/meson-logs/*.txt
10875
109-
fallback-shared-libraries:
110-
name: fallback shared libraries
76+
clang-debug:
77+
name: clang debug
11178
runs-on: ubuntu-latest
11279
steps:
11380
- name: install libraries
114-
run: sudo apt-get install libpam-dev libcap-ng-dev
81+
run: sudo apt-get install meson clang pkg-config libjson-c-dev libdbus-1-dev python3-dev
11582
- uses: actions/checkout@v3
11683
- uses: actions/setup-python@v4
11784
with:
11885
python-version: '3.x'
119-
- uses: BSFishy/[email protected]
120-
name: build
121-
with:
122-
action: build
123-
setup-options: >
124-
--werror
125-
--buildtype=release
126-
--wrap-mode=forcefallback
127-
-Dlibdbus=enabled
128-
-Ddbus:werror=false
129-
-Dopenssl:werror=false
130-
meson-version: 0.61.2
131-
- uses: BSFishy/[email protected]
132-
name: test
133-
with:
134-
action: test
135-
meson-version: 0.61.2
86+
- name: build
87+
run: |
88+
scripts/build.sh -b debug -c clang libdbus
13689
- uses: actions/upload-artifact@v3
90+
name: upload logs
13791
if: failure()
13892
with:
13993
name: log files
14094
path: |
141-
build/meson-logs/*.txt
95+
.build-ci/meson-logs/*.txt
14296
143-
fallback-static-libraries:
144-
name: fallback static libraries
97+
clang-release:
98+
name: clang release
14599
runs-on: ubuntu-latest
146100
steps:
147101
- name: install libraries
148-
run: sudo apt-get install libpam-dev libcap-ng-dev
102+
run: sudo apt-get install meson clang pkg-config libjson-c-dev libdbus-1-dev python3-dev
149103
- uses: actions/checkout@v3
150104
- uses: actions/setup-python@v4
151105
with:
152106
python-version: '3.x'
153-
- uses: BSFishy/[email protected]
154-
name: build
155-
with:
156-
action: build
157-
setup-options: >
158-
--werror
159-
--buildtype=release
160-
--wrap-mode=forcefallback
161-
--default-library=static
162-
-Dlibdbus=enabled
163-
-Ddbus:werror=false
164-
-Dopenssl:werror=false
165-
meson-version: 0.61.2
166-
- uses: BSFishy/[email protected]
167-
name: test
168-
with:
169-
action: test
170-
meson-version: 0.61.2
107+
- name: build
108+
run: |
109+
scripts/build.sh -b release -c clang libdbus
171110
- uses: actions/upload-artifact@v3
172111
name: upload logs
173112
if: failure()
174113
with:
175114
name: log files
176115
path: |
177-
build/meson-logs/*.txt
116+
.build-ci/meson-logs/*.txt
178117
179-
fallback-all-static:
180-
name: fallback all static
118+
fallback-shared-libraries:
119+
name: fallback shared libraries
181120
runs-on: ubuntu-latest
182121
steps:
183122
- name: install libraries
184-
run: sudo apt-get install libpam-dev libcap-ng-dev
123+
run: sudo apt-get install meson gcc pkg-config libpam-dev libcap-ng-dev
185124
- uses: actions/checkout@v3
186125
- uses: actions/setup-python@v4
187126
with:
188127
python-version: '3.x'
189-
- uses: BSFishy/[email protected]
190-
name: build
191-
with:
192-
action: build
193-
setup-options: >
194-
--werror
195-
--buildtype=release
196-
--wrap-mode=forcefallback
197-
--default-library=static
198-
--cross-file=.github/cross/ubuntu-static.txt
199-
-Dlibdbus=enabled
200-
-Ddbus:werror=false
201-
-Dopenssl:werror=false
202-
meson-version: 0.61.2
203-
- uses: BSFishy/[email protected]
204-
name: test
205-
with:
206-
action: test
207-
meson-version: 0.61.2
128+
- name: build
129+
run: |
130+
scripts/build.sh -b release -c gcc fallback
208131
- uses: actions/upload-artifact@v3
209-
name: upload logs
210132
if: failure()
211133
with:
212134
name: log files
213135
path: |
214-
build/meson-logs/*.txt
136+
.build-ci/meson-logs/*.txt
215137
216138
cross-armhf:
217139
name: cross armhf
@@ -228,32 +150,20 @@ jobs:
228150
EOF
229151
sudo apt update
230152
- name: install armhf compiler
231-
run: sudo apt install gcc-arm-linux-gnueabihf pkg-config qemu-user-static
153+
run: sudo apt install meson gcc-arm-linux-gnueabihf pkg-config qemu-user-static
232154
- name: install libraries
233155
run: sudo apt install libjson-c-dev:armhf
234156
- uses: actions/checkout@v3
235-
- uses: BSFishy/[email protected]
236-
name: build
237-
with:
238-
action: build
239-
setup-options: >
240-
--werror
241-
--buildtype=release
242-
--cross-file=.github/cross/ubuntu-armhf.txt
243-
-Dpython=disabled
244-
meson-version: 0.61.2
245-
- uses: BSFishy/[email protected]
246-
name: test
247-
with:
248-
action: test
249-
meson-version: 0.61.2
157+
- name: build
158+
run: |
159+
scripts/build.sh -b release -c gcc cross_armhf
250160
- uses: actions/upload-artifact@v3
251161
name: upload logs
252162
if: failure()
253163
with:
254164
name: log files
255165
path: |
256-
build/meson-logs/*.txt
166+
.build-ci/meson-logs/*.txt
257167
258168
cross-ppc64le:
259169
name: cross ppc64le
@@ -270,32 +180,20 @@ jobs:
270180
EOF
271181
sudo apt update
272182
- name: install powerpc64le compiler
273-
run: sudo apt install gcc-powerpc64le-linux-gnu pkg-config qemu-user-static
183+
run: sudo apt install meson gcc-powerpc64le-linux-gnu pkg-config qemu-user-static
274184
- name: install libraries
275185
run: sudo apt install libjson-c-dev:ppc64el
276186
- uses: actions/checkout@v3
277-
- uses: BSFishy/[email protected]
278-
name: build
279-
with:
280-
action: build
281-
setup-options: >
282-
--werror
283-
--buildtype=release
284-
--cross-file=.github/cross/ubuntu-ppc64le.txt
285-
-Dpython=disabled
286-
meson-version: 0.61.2
287-
- uses: BSFishy/[email protected]
288-
name: test
289-
with:
290-
action: test
291-
meson-version: 0.61.2
187+
- name: build
188+
run: |
189+
scripts/build.sh -b release -c gcc cross_ppc64le
292190
- uses: actions/upload-artifact@v3
293191
name: upload logs
294192
if: failure()
295193
with:
296194
name: log files
297195
path: |
298-
build/meson-logs/*.txt
196+
.build-ci/meson-logs/*.txt
299197
300198
cross-s390x:
301199
name: cross s390x
@@ -312,72 +210,26 @@ jobs:
312210
EOF
313211
sudo apt update
314212
- name: install s390x compiler
315-
run: sudo apt install gcc-s390x-linux-gnu libgcc-s1:s390x pkg-config qemu-user-static
213+
run: sudo apt install meson gcc-s390x-linux-gnu libgcc-s1:s390x pkg-config qemu-user-static
316214
- name: install libraries
317215
run: sudo apt install libjson-c-dev:s390x
318216
- uses: actions/checkout@v3
319-
- uses: BSFishy/[email protected]
320-
name: build
321-
with:
322-
action: build
323-
setup-options: >
324-
--werror
325-
--buildtype=release
326-
--cross-file=.github/cross/ubuntu-s390x.txt
327-
-Dpython=disabled
328-
meson-version: 0.61.2
329-
- uses: BSFishy/[email protected]
330-
name: test
331-
with:
332-
action: test
333-
meson-version: 0.61.2
217+
- name: build
218+
run: |
219+
scripts/build.sh -b release -c gcc cross_s390x
334220
- uses: actions/upload-artifact@v3
335221
name: upload logs
336222
if: failure()
337223
with:
338224
name: log files
339225
path: |
340-
build/meson-logs/*.txt
226+
.build-ci/meson-logs/*.txt
341227
342228
build-muon:
343229
name: muon minimal
344230
runs-on: ubuntu-latest
345231
steps:
346232
- uses: actions/checkout@v3
347-
- name: build muon and samurai build-tool
348-
run: |
349-
mkdir build-tools
350-
cd build-tools
351-
git clone --depth 1 https://git.sr.ht/~lattis/muon
352-
cd muon
353-
354-
export CC=gcc
355-
export ninja=build/samu
356-
357-
./tools/bootstrap_ninja.sh build
358-
./bootstrap.sh build
359-
360-
build/muon setup \
361-
-Dlibcurl=disabled \
362-
-Dlibarchive=disabled \
363-
-Ddocs=disabled \
364-
-Dsamurai=disabled \
365-
build
366-
build/samu -C build
367-
build/muon -C build test
368233
- name: build
369234
run: |
370-
export PATH=$(pwd)/build-tools/muon/build:$PATH
371-
372-
# Need to explicitly disable python as muon currently
373-
# only partially supports the python module. It misses
374-
# the dependency() implementation
375-
muon setup \
376-
-Dpython=disabled \
377-
build
378-
samu -C build
379-
- name: test
380-
run: |
381-
export PATH=$(pwd)/build-tools/muon/build:$PATH
382-
383-
muon -C build test
235+
scripts/build.sh -m muon

0 commit comments

Comments
 (0)