Skip to content

Commit 5398ca2

Browse files
authored
👷 Update CI and curl (#12)
1 parent b40b43f commit 5398ca2

7 files changed

Lines changed: 60 additions & 66 deletions

File tree

.github/actions/process-linting-results/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ runs:
1111
shell: bash
1212
- id: stage
1313
#continue-on-error: true
14-
uses: Thalhammer/patch-generator-action@v2
14+
uses: Thalhammer/patch-generator-action@v3
1515

1616
# Unfortunately the previous action reports a failure so nothing else can run
1717
# partially a limitation on composite actions since `continue-on-error` is not

.github/workflows/autobahn-ws.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ on:
1414
- ".github/actions/**"
1515
- ".github/workflows/autobahn-ws.yml"
1616
env:
17-
CXX: /usr/bin/clang++-15
18-
CC: /usr/bin/clang-15
17+
CXX: /usr/bin/clang++-18
18+
CC: /usr/bin/clang-18
1919
jobs:
2020
autobahn-ws:
21-
runs-on: ubuntu-22.04
21+
runs-on: ubuntu-24.04
2222
steps:
2323
- uses: actions/checkout@v3
2424
- name: Configure

.github/workflows/cmake.yml

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -15,42 +15,28 @@ on:
1515
- ".github/workflows/cmake.yml"
1616

1717
env:
18-
CXX: /usr/bin/clang++-12
19-
CC: /usr/bin/clang-12
20-
RUN_ON: ubuntu-20.04
21-
CMAKE_URL: https://cmake.org/files/v3.15/cmake-3.15.7.tar.gz
18+
CXX: /usr/bin/clang++-18
19+
CC: /usr/bin/clang-18
20+
CMAKE_URL: https://cmake.org/files/v3.15/cmake-3.15.7-Linux-x86_64.sh
2221
CMAKE_VERSION: 3.15.7
2322

2423
jobs:
2524
min-req:
26-
runs-on: ubuntu-20.04
25+
runs-on: ubuntu-24.04
2726
steps:
2827
- uses: actions/checkout@v3
29-
- name: Cache CMake
30-
id: cache-cmake
31-
uses: actions/cache@v3
32-
with:
33-
path: cmake-${{ env.CMAKE_VERSION }}
34-
key: ubuntu-20.04-${{ github.job }}-cmake-${{ env.CMAKE_VERSION }}
35-
- name: Build cmake
36-
if: steps.cache-cmake.outputs.cache-hit != 'true'
37-
run: |
38-
wget ${{ env.CMAKE_URL }}
39-
tar -zxf cmake-${{ env.CMAKE_VERSION }}.tar.gz
40-
cd cmake-${{ env.CMAKE_VERSION }}
41-
./bootstrap
42-
make -j $(nproc)
4328
- name: Install cmake
4429
run: |
45-
cd cmake-${{ env.CMAKE_VERSION }}
46-
sudo make install
47-
- name: Build Tests
30+
wget ${{ env.CMAKE_URL }}
31+
chmod +x cmake-${{ env.CMAKE_VERSION }}-Linux-x86_64.sh
32+
./cmake-${{ env.CMAKE_VERSION }}-Linux-x86_64.sh --skip-license
33+
- name: Build & Install
4834
run: |
49-
mkdir build
50-
cd build
51-
cmake .. -DASYNCPP_BUILD_TEST=ON -G 'Unix Makefiles'
52-
cmake --build .
53-
- name: Run Tests
35+
cmake -S . -B build -D ASYNCPP_BUILD_TEST=OFF
36+
cmake --build build
37+
cmake --install build --prefix install
38+
- name: Run Tests
5439
run: |
55-
cd build
56-
./asyncpp_curl-test
40+
cmake -S . -B test_build -D CMAKE_PREFIX_PATH=../install
41+
cmake --build test_build
42+
ctest --test-dir test_build --no-tests=error

.github/workflows/compiler-support.yml

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,35 +11,39 @@ jobs:
1111
fail-fast: false
1212
matrix:
1313
compiler:
14+
- { tag: "ubuntu-2404_clang-16", name: "Ubuntu 24.04 Clang 16", cxx: "/usr/bin/clang++-16", cc: "/usr/bin/clang-16", runs-on: "ubuntu-24.04" }
15+
- { tag: "ubuntu-2404_clang-17", name: "Ubuntu 24.04 Clang 17", cxx: "/usr/bin/clang++-17", cc: "/usr/bin/clang-17", runs-on: "ubuntu-24.04" }
16+
- { tag: "ubuntu-2404_clang-18", name: "Ubuntu 24.04 Clang 18", cxx: "/usr/bin/clang++-18", cc: "/usr/bin/clang-18", runs-on: "ubuntu-24.04" }
17+
- { tag: "ubuntu-2404_gcc-12", name: "Ubuntu 24.04 G++ 12", cxx: "/usr/bin/g++-12", cc: "/usr/bin/gcc-12", runs-on: "ubuntu-24.04" }
18+
- { tag: "ubuntu-2404_gcc-13", name: "Ubuntu 24.04 G++ 13", cxx: "/usr/bin/g++-13", cc: "/usr/bin/gcc-13", runs-on: "ubuntu-24.04" }
19+
- { tag: "ubuntu-2404_gcc-14", name: "Ubuntu 24.04 G++ 14", cxx: "/usr/bin/g++-14", cc: "/usr/bin/gcc-14", runs-on: "ubuntu-24.04" }
1420
- { tag: "ubuntu-2204_clang-13", name: "Ubuntu 22.04 Clang 13", cxx: "/usr/bin/clang++-13", cc: "/usr/bin/clang-13", runs-on: "ubuntu-22.04" }
1521
- { tag: "ubuntu-2204_clang-14", name: "Ubuntu 22.04 Clang 14", cxx: "/usr/bin/clang++-14", cc: "/usr/bin/clang-14", runs-on: "ubuntu-22.04" }
1622
- { tag: "ubuntu-2204_clang-15", name: "Ubuntu 22.04 Clang 15", cxx: "/usr/bin/clang++-15", cc: "/usr/bin/clang-15", runs-on: "ubuntu-22.04" }
1723
- { tag: "ubuntu-2204_gcc-10", name: "Ubuntu 22.04 G++ 10", cxx: "/usr/bin/g++-10", cc: "/usr/bin/gcc-10", runs-on: "ubuntu-22.04" }
1824
- { tag: "ubuntu-2204_gcc-11", name: "Ubuntu 22.04 G++ 11", cxx: "/usr/bin/g++-11", cc: "/usr/bin/gcc-11", runs-on: "ubuntu-22.04" }
19-
- { tag: "ubuntu-2004_clang-12", name: "Ubuntu 20.04 Clang 12", cxx: "/usr/bin/clang++-12", cc: "/usr/bin/clang-12", runs-on: "ubuntu-20.04" }
20-
- { tag: "ubuntu-2004_clang-11", name: "Ubuntu 20.04 Clang 11", cxx: "/usr/bin/clang++-11", cc: "/usr/bin/clang-11", runs-on: "ubuntu-20.04" }
21-
- { tag: "ubuntu-2004_clang-10", name: "Ubuntu 20.04 Clang 10", cxx: "/usr/bin/clang++-10", cc: "/usr/bin/clang-10", runs-on: "ubuntu-20.04" }
22-
- { tag: "ubuntu-2004_gcc-10", name: "Ubuntu 20.04 G++ 10", cxx: "/usr/bin/g++-10", cc: "/usr/bin/gcc-10", runs-on: "ubuntu-20.04" }
25+
- { tag: "windows-2025_msvc17", name: "Windows Server 2025 MSVC 17", cxx: "", cc: "", runs-on: "windows-2025" }
2326
- { tag: "windows-2022_msvc17", name: "Windows Server 2022 MSVC 17", cxx: "", cc: "", runs-on: "windows-2022" }
24-
- { tag: "windows-2019_msvc16", name: "Windows Server 2019 MSVC 16", cxx: "", cc: "", runs-on: "windows-2019" }
2527
runs-on: ${{ matrix.compiler.runs-on }}
2628
name: Compiler ${{ matrix.compiler.name }}
2729
env:
2830
CXX: ${{ matrix.compiler.cxx }}
2931
CC: ${{ matrix.compiler.cc }}
3032
outputs:
3133
# Because github wants us to suffer we need to list out every output instead of using a matrix statement or some kind of dynamic setting
34+
ubuntu-2404_clang-16: ${{ steps.status.outputs.ubuntu-2404_clang-16 }}
35+
ubuntu-2404_clang-17: ${{ steps.status.outputs.ubuntu-2404_clang-17 }}
36+
ubuntu-2404_clang-18: ${{ steps.status.outputs.ubuntu-2404_clang-18 }}
37+
ubuntu-2404_gcc-12: ${{ steps.status.outputs.ubuntu-2404_gcc-12 }}
38+
ubuntu-2404_gcc-13: ${{ steps.status.outputs.ubuntu-2404_gcc-13 }}
39+
ubuntu-2404_gcc-14: ${{ steps.status.outputs.ubuntu-2404_gcc-14 }}
3240
ubuntu-2204_clang-13: ${{ steps.status.outputs.ubuntu-2204_clang-13 }}
3341
ubuntu-2204_clang-14: ${{ steps.status.outputs.ubuntu-2204_clang-14 }}
3442
ubuntu-2204_clang-15: ${{ steps.status.outputs.ubuntu-2204_clang-15 }}
3543
ubuntu-2204_gcc-10: ${{ steps.status.outputs.ubuntu-2204_gcc-10 }}
3644
ubuntu-2204_gcc-11: ${{ steps.status.outputs.ubuntu-2204_gcc-11 }}
37-
ubuntu-2004_clang-12: ${{ steps.status.outputs.ubuntu-2004_clang-12 }}
38-
ubuntu-2004_clang-11: ${{ steps.status.outputs.ubuntu-2004_clang-11 }}
39-
ubuntu-2004_clang-10: ${{ steps.status.outputs.ubuntu-2004_clang-10 }}
40-
ubuntu-2004_gcc-10: ${{ steps.status.outputs.ubuntu-2004_gcc-10 }}
45+
windows-2025_msvc17: ${{ steps.status.outputs.windows-2025_msvc17 }}
4146
windows-2022_msvc17: ${{ steps.status.outputs.windows-2022_msvc17 }}
42-
windows-2019_msvc16: ${{ steps.status.outputs.windows-2019_msvc16 }}
4347
defaults:
4448
run:
4549
shell: bash -l {0}
@@ -54,29 +58,23 @@ jobs:
5458
sudo apt install libstdc++-12-dev gcc-12 libgcc-12-dev
5559
- name: Configure
5660
if: contains(matrix.compiler.runs-on, 'ubuntu')
57-
run: cmake -S. -Bbuild -DASYNCPP_BUILD_TEST=ON -DASYNCPP_WITH_ASAN=ON
61+
run: cmake -S. -Bbuild -DASYNCPP_BUILD_TEST=ON -DASYNCPP_WITH_ASAN=ON -DASYNCPP_WITH_TSAN=OFF
5862
- name: Configure
5963
if: contains(matrix.compiler.runs-on, 'ubuntu') != true
60-
run: cmake -S. -Bbuild -DASYNCPP_BUILD_TEST=ON -DASYNCPP_WITH_ASAN=OFF
64+
run: cmake -S. -Bbuild -DASYNCPP_BUILD_TEST=ON -DASYNCPP_WITH_ASAN=OFF -DASYNCPP_WITH_TSAN=OFF
6165
- name: Build
6266
run: cmake --build build --config Debug
6367
- name: Test
64-
working-directory: ${{ github.workspace }}/build
65-
if: contains(matrix.compiler.runs-on, 'windows') != true
66-
run: ./asyncpp_curl-test
67-
- name: Test
68-
if: contains(matrix.compiler.runs-on, 'windows')
69-
working-directory: ${{ github.workspace }}/build
70-
run: Debug/asyncpp_curl-test.exe
68+
run: ctest --test-dir build --output-on-failure --no-tests=error
7169
- name: Update Result
7270
id: status
7371
if: ${{ always() }}
7472
run: echo "${{ matrix.compiler.tag }}=${{ job.status }}" >> $GITHUB_OUTPUT
7573

7674
badge-upload:
77-
if: ${{ github.event_name == 'push' && always() }}
75+
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && always() }}
7876
needs: [build]
79-
runs-on: ubuntu-20.04
77+
runs-on: ubuntu-24.04
8078
name: Publish badges
8179
steps:
8280
- name: Checkout repository
@@ -86,4 +84,3 @@ jobs:
8684
with:
8785
category: compiler
8886
badges: ${{ toJson(needs.build.outputs) }}
89-

.github/workflows/lint.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,20 @@ jobs:
1010
runs-on: ubuntu-22.04
1111
steps:
1212
- run: |
13-
sudo apt-get update && sudo apt-get install clang-format-14
13+
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-21 main" | sudo tee /etc/apt/sources.list.d/llvm.list
14+
echo "deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy-21 main" | sudo tee -a /etc/apt/sources.list.d/llvm.list
15+
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
16+
sudo apt update && sudo apt-get install clang-format-21
1417
shopt -s globstar
1518
- uses: actions/checkout@v3
16-
- run: find \( -name "*.h" -or -name "*.cpp" \) -exec clang-format-14 -i {} \;
19+
- run: find \( -name "*.h" -or -name "*.cpp" \) -exec clang-format-21 -i {} \;
1720
- run: find \( -name "*.h" -or -name "*.cpp" \) -exec ./.github/scripts/add-newline-if-missing.sh {} \;
1821
- uses: ./.github/actions/process-linting-results
1922
with:
2023
linter_name: clang-format
2124

2225
cmake-format:
23-
runs-on: ubuntu-20.04
26+
runs-on: ubuntu-24.04
2427
steps:
2528
- uses: actions/setup-python@v4.3.0
2629
with:
@@ -35,7 +38,7 @@ jobs:
3538
linter_name: cmake-format
3639

3740
line-ending:
38-
runs-on: ubuntu-20.04
41+
runs-on: ubuntu-24.04
3942
steps:
4043
- uses: actions/checkout@v3
4144
- run: git add --renormalize .

cmake/GetCURL.cmake

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,27 +26,35 @@ else()
2626
OFF
2727
CACHE INTERNAL "" FORCE)
2828
set(BUILD_TESTING OFF)
29+
set(CURL_USE_LIBPSL OFF)
2930

3031
if(WIN32)
31-
set(CMAKE_USE_SCHANNEL
32+
set(CURL_USE_SCHANNEL
3233
ON
3334
CACHE INTERNAL "" FORCE)
3435
else()
35-
set(CMAKE_USE_OPENSSL
36+
set(CURL_USE_OPENSSL
3637
ON
3738
CACHE INTERNAL "" FORCE)
3839
endif()
3940

4041
include(FetchContent)
4142
FetchContent_Declare(
4243
curl
43-
URL https://github.com/curl/curl/releases/download/curl-7_80_0/curl-7.80.0.tar.xz
44+
URL https://github.com/curl/curl/releases/download/curl-8_18_0/curl-8.18.0.tar.xz
4445
URL_HASH
45-
SHA256=a132bd93188b938771135ac7c1f3ac1d3ce507c1fcbef8c471397639214ae2ab # the file
46-
# hash for curl-7.80.0.tar.xz
46+
SHA256=40df79166e74aa20149365e11ee4c798a46ad57c34e4f68fd13100e2c9a91946
4747
USES_TERMINAL_DOWNLOAD TRUE)
4848
FetchContent_MakeAvailable(curl)
49-
set_property(TARGET libcurl PROPERTY FOLDER "external")
49+
get_property(
50+
CURL_ALIAS_TARGET
51+
TARGET libcurl
52+
PROPERTY ALIASED_TARGET)
53+
if("${CURL_ALIAS_TARGET}" STREQUAL "")
54+
set_property(TARGET libcurl PROPERTY FOLDER "external")
55+
else()
56+
set_property(TARGET ${CURL_ALIAS_TARGET} PROPERTY FOLDER "external")
57+
endif()
5058
message(STATUS "Building libcurl using FetchContent")
5159
endif()
5260
endif()

src/curl/websocket.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ namespace asyncpp::curl {
416416
// No additional data
417417
res = 0;
418418
}
419-
assert(res < (parser_data.size() - old_size));
419+
assert(res <= (parser_data.size() - old_size));
420420
parser_data.resize(old_size + res);
421421

422422
// Parse the data if there's any

0 commit comments

Comments
 (0)