Skip to content

Commit 71dd7f9

Browse files
committed
ci(core): install Asio and fetch async submodules in standalone CI
1 parent d5acdfd commit 71dd7f9

File tree

1 file changed

+57
-10
lines changed

1 file changed

+57
-10
lines changed

.github/workflows/core-strict-ci.yml

Lines changed: 57 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,12 @@ env:
4545
clang-tidy
4646
valgrind
4747
pkg-config
48+
git
49+
libasio-dev
4850
nlohmann-json3-dev
4951
libspdlog-dev
5052
libfmt-dev
5153
libssl-dev
52-
git
5354
BUILD_JOBS: 2
5455
VIX_GIT_BRANCH: dev
5556

@@ -74,28 +75,42 @@ jobs:
7475
run: |
7576
sudo apt-get update -y
7677
sudo apt-get install -y $DEPS
78+
test -f /usr/include/asio.hpp || (echo "::error::System Asio header not found after install"; exit 1)
7779
7880
- name: Fetch sibling dependencies
7981
run: |
8082
rm -rf ../utils ../async ../json ../template
8183
8284
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/utils.git ../utils
83-
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/async.git ../async
85+
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" --recurse-submodules https://github.com/vixcpp/async.git ../async
8486
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/json.git ../json || true
8587
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/template.git ../template || true
8688
89+
git -C ../async submodule update --init --recursive --depth 1 || true
90+
8791
echo "---- repository root ----"
8892
pwd
8993
echo "---- sibling dependencies ----"
9094
ls -la ../utils || true
9195
ls -la ../async || true
96+
ls -la ../async/third_party || true
97+
ls -la ../async/third_party/asio || true
98+
ls -la ../async/third_party/asio/include || true
9299
ls -la ../json || true
93100
ls -la ../template || true
94101
95102
- name: Verify required sibling dependencies
96103
run: |
97104
test -f ../utils/CMakeLists.txt || (echo "::error::../utils/CMakeLists.txt is missing"; exit 1)
98105
test -f ../async/CMakeLists.txt || (echo "::error::../async/CMakeLists.txt is missing"; exit 1)
106+
if [ -f ../async/third_party/asio/include/asio.hpp ]; then
107+
echo "Vendored Asio found in async."
108+
elif [ -f /usr/include/asio.hpp ]; then
109+
echo "System Asio found."
110+
else
111+
echo "::error::Neither vendored Asio nor system Asio was found."
112+
exit 1
113+
fi
99114
echo "Required sibling dependencies are present."
100115
101116
- name: Select compiler
@@ -155,21 +170,29 @@ jobs:
155170
run: |
156171
sudo apt-get update -y
157172
sudo apt-get install -y $DEPS
173+
test -f /usr/include/asio.hpp || (echo "::error::System Asio header not found after install"; exit 1)
158174
159175
- name: Fetch sibling dependencies
160176
run: |
161177
rm -rf ../utils ../async ../json ../template
162178
163179
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/utils.git ../utils
164-
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/async.git ../async
180+
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" --recurse-submodules https://github.com/vixcpp/async.git ../async
165181
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/json.git ../json || true
166182
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/template.git ../template || true
167183
184+
git -C ../async submodule update --init --recursive --depth 1 || true
185+
168186
- name: Verify required sibling dependencies
169187
run: |
170188
test -f ../utils/CMakeLists.txt || (echo "::error::../utils/CMakeLists.txt is missing"; exit 1)
171189
test -f ../async/CMakeLists.txt || (echo "::error::../async/CMakeLists.txt is missing"; exit 1)
172-
echo "Required sibling dependencies are present."
190+
if [ -f ../async/third_party/asio/include/asio.hpp ] || [ -f /usr/include/asio.hpp ]; then
191+
echo "Asio is available."
192+
else
193+
echo "::error::Asio is not available for async."
194+
exit 1
195+
fi
173196
174197
- name: Configure runtime build
175198
run: |
@@ -303,21 +326,29 @@ jobs:
303326
run: |
304327
sudo apt-get update -y
305328
sudo apt-get install -y $DEPS
329+
test -f /usr/include/asio.hpp || (echo "::error::System Asio header not found after install"; exit 1)
306330
307331
- name: Fetch sibling dependencies
308332
run: |
309333
rm -rf ../utils ../async ../json ../template
310334
311335
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/utils.git ../utils
312-
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/async.git ../async
336+
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" --recurse-submodules https://github.com/vixcpp/async.git ../async
313337
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/json.git ../json || true
314338
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/template.git ../template || true
315339
340+
git -C ../async submodule update --init --recursive --depth 1 || true
341+
316342
- name: Verify required sibling dependencies
317343
run: |
318344
test -f ../utils/CMakeLists.txt || (echo "::error::../utils/CMakeLists.txt is missing"; exit 1)
319345
test -f ../async/CMakeLists.txt || (echo "::error::../async/CMakeLists.txt is missing"; exit 1)
320-
echo "Required sibling dependencies are present."
346+
if [ -f ../async/third_party/asio/include/asio.hpp ] || [ -f /usr/include/asio.hpp ]; then
347+
echo "Asio is available."
348+
else
349+
echo "::error::Asio is not available for async."
350+
exit 1
351+
fi
321352
322353
- name: Configure for analysis
323354
run: |
@@ -376,21 +407,29 @@ jobs:
376407
run: |
377408
sudo apt-get update -y
378409
sudo apt-get install -y $DEPS
410+
test -f /usr/include/asio.hpp || (echo "::error::System Asio header not found after install"; exit 1)
379411
380412
- name: Fetch sibling dependencies
381413
run: |
382414
rm -rf ../utils ../async ../json ../template
383415
384416
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/utils.git ../utils
385-
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/async.git ../async
417+
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" --recurse-submodules https://github.com/vixcpp/async.git ../async
386418
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/json.git ../json || true
387419
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/template.git ../template || true
388420
421+
git -C ../async submodule update --init --recursive --depth 1 || true
422+
389423
- name: Verify required sibling dependencies
390424
run: |
391425
test -f ../utils/CMakeLists.txt || (echo "::error::../utils/CMakeLists.txt is missing"; exit 1)
392426
test -f ../async/CMakeLists.txt || (echo "::error::../async/CMakeLists.txt is missing"; exit 1)
393-
echo "Required sibling dependencies are present."
427+
if [ -f ../async/third_party/asio/include/asio.hpp ] || [ -f /usr/include/asio.hpp ]; then
428+
echo "Asio is available."
429+
else
430+
echo "::error::Asio is not available for async."
431+
exit 1
432+
fi
394433
395434
- name: Configure valgrind build
396435
run: |
@@ -458,21 +497,29 @@ jobs:
458497
run: |
459498
sudo apt-get update -y
460499
sudo apt-get install -y $DEPS
500+
test -f /usr/include/asio.hpp || (echo "::error::System Asio header not found after install"; exit 1)
461501
462502
- name: Fetch sibling dependencies
463503
run: |
464504
rm -rf ../utils ../async ../json ../template
465505
466506
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/utils.git ../utils
467-
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/async.git ../async
507+
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" --recurse-submodules https://github.com/vixcpp/async.git ../async
468508
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/json.git ../json || true
469509
git clone --depth 1 --branch "${VIX_GIT_BRANCH}" https://github.com/vixcpp/template.git ../template || true
470510
511+
git -C ../async submodule update --init --recursive --depth 1 || true
512+
471513
- name: Verify required sibling dependencies
472514
run: |
473515
test -f ../utils/CMakeLists.txt || (echo "::error::../utils/CMakeLists.txt is missing"; exit 1)
474516
test -f ../async/CMakeLists.txt || (echo "::error::../async/CMakeLists.txt is missing"; exit 1)
475-
echo "Required sibling dependencies are present."
517+
if [ -f ../async/third_party/asio/include/asio.hpp ] || [ -f /usr/include/asio.hpp ]; then
518+
echo "Asio is available."
519+
else
520+
echo "::error::Asio is not available for async."
521+
exit 1
522+
fi
476523
477524
- name: Configure release mode
478525
run: |

0 commit comments

Comments
 (0)