Clang-Format #1413
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [push, workflow_dispatch, pull_request] # Trigger for every push as well as for every pull request. Yes, this will run stuff twice in case we create a PR from inside this repo. I'm open for better solutions, where I do not have to specify each brach individually for the 'push' trigger. | |
env: | |
# Enable verbose output. | |
# Repeat up to 5 times to deal with flaky tests. | |
CTEST_OPTIONS: "--repeat until-pass:5 --output-on-failure" | |
# The OpenSSL path for CI runs. Found via 'brew info openssl'. | |
MACOS_OPENSSL_ROOT_DIR: "/opt/homebrew/Cellar/openssl@3/3.3.0" | |
jobs: | |
ubuntu-clang-openssl: | |
strategy: | |
matrix: | |
container: ["ubuntu:20.04", "ubuntu:22.04", "ubuntu:23.04", "ubuntu:24.04"] | |
systemCurl: [ON, OFF] | |
buildType: [Debug, Release] | |
runs-on: ubuntu-latest | |
container: ${{ matrix.container }} | |
steps: | |
- name: Update package list | |
run: apt update | |
- name: Install Dependencies | |
run: apt install -y git libssl-dev cmake build-essential clang libcurl4-openssl-dev | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
- name: Setup cmake | |
uses: jwlawson/[email protected] | |
with: | |
cmake-version: '3.22.x' | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: "Build & Test" | |
env: | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: ON | |
CPR_FORCE_OPENSSL_BACKEND: ON | |
USE_SYSTEM_CURL: ${{ matrix.systemCurl }} | |
uses: ashutoshvarma/action-cmake-build@master | |
with: | |
build-dir: ${{ github.workspace }}/build | |
source-dir: ${{ github.workspace }} | |
cc: clang | |
cxx: clang++ | |
build-type: ${{ matrix.buildType }} | |
run-test: true | |
ctest-options: ${{ env.CTEST_OPTIONS }} | |
ubuntu-gcc-openssl: | |
strategy: | |
matrix: | |
container: ["ubuntu:20.04", "ubuntu:22.04", "ubuntu:23.04", "ubuntu:24.04"] | |
systemCurl: [ON, OFF] | |
buildType: [Debug, Release] | |
runs-on: ubuntu-latest | |
container: ${{ matrix.container }} | |
steps: | |
- name: Update package list | |
run: apt update | |
- name: Install Dependencies | |
run: apt install -y git libssl-dev cmake build-essential libcurl4-openssl-dev | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
- name: Setup cmake | |
uses: jwlawson/[email protected] | |
with: | |
cmake-version: '3.22.x' | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: "Build & Test" | |
env: | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: ON | |
CPR_FORCE_OPENSSL_BACKEND: ON | |
USE_SYSTEM_CURL: ${{ matrix.systemCurl }} | |
uses: ashutoshvarma/action-cmake-build@master | |
with: | |
build-dir: ${{ github.workspace }}/build | |
source-dir: ${{ github.workspace }} | |
cc: gcc | |
cxx: g++ | |
build-type: ${{ matrix.buildType }} | |
run-test: true | |
ctest-options: ${{ env.CTEST_OPTIONS }} | |
ubuntu-gcc-mbedtls: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Update package list | |
run: sudo apt update | |
- name: Install Dependencies | |
run: sudo apt install -y git libssl-dev libmbedtls-dev cmake build-essential | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
- name: Setup cmake | |
uses: jwlawson/[email protected] | |
with: | |
cmake-version: '3.22.x' | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: "Build & Test" | |
env: | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: ON | |
CPR_FORCE_MBEDTLS_BACKEND: ON | |
uses: ashutoshvarma/action-cmake-build@master | |
with: | |
build-dir: ${{ github.workspace }}/build | |
source-dir: ${{ github.workspace }} | |
cc: gcc | |
cxx: g++ | |
build-type: Release | |
run-test: true | |
ctest-options: ${{ env.CTEST_OPTIONS }} | |
fedora-clang-openssl: | |
strategy: | |
matrix: | |
container: ["fedora:latest"] | |
runs-on: ubuntu-latest | |
container: ${{ matrix.container }} | |
steps: | |
- name: Update package list | |
run: dnf update -y | |
- name: Install Dependencies | |
run: dnf install -y gcc clang git gcc gdb make openssl-devel libcurl-devel cmake | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: "Build & Test" | |
env: | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: ON | |
CPR_FORCE_OPENSSL_BACKEND: ON | |
USE_SYSTEM_CURL: OFF | |
uses: ashutoshvarma/action-cmake-build@master | |
with: | |
build-dir: ${{ github.workspace }}/build | |
source-dir: ${{ github.workspace }} | |
cc: clang | |
cxx: clang++ | |
build-type: Release | |
run-test: true | |
ctest-options: ${{ env.CTEST_OPTIONS }} | |
fedora-gcc-openssl: | |
strategy: | |
matrix: | |
container: ["fedora:latest"] | |
systemCurl: [ON, OFF] | |
buildType: [Debug, Release] | |
runs-on: ubuntu-latest | |
container: ${{ matrix.container }} | |
steps: | |
- name: Update package list | |
run: dnf update -y | |
- name: Install Dependencies | |
run: dnf install -y gcc clang git gcc gdb make openssl-devel libcurl-devel cmake | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: "Build & Test" | |
env: | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: ON | |
CPR_FORCE_OPENSSL_BACKEND: ON | |
USE_SYSTEM_CURL: ${{ matrix.systemCurl }} | |
uses: ashutoshvarma/action-cmake-build@master | |
with: | |
build-dir: ${{ github.workspace }}/build | |
source-dir: ${{ github.workspace }} | |
cc: gcc | |
cxx: g++ | |
build-type: ${{ matrix.buildType }} | |
run-test: true | |
ctest-options: ${{ env.CTEST_OPTIONS }} | |
fedora-gcc-ssl-sanitizer: | |
strategy: | |
matrix: | |
buildType: [UdefSan, LeakSan, AddrSan] # ThreadSan is disabled for now until all problems are resolved: https://github.com/libcpr/cpr/issues/451 | |
runs-on: ubuntu-latest | |
container: "fedora:latest" # Use fedora for an up to date version of all sanitizers | |
steps: | |
- name: Update package list | |
run: dnf update -y | |
- name: Install Dependencies | |
run: dnf install -y gcc clang git gcc gdb make openssl-devel libasan libubsan liblsan libtsan cmake | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: "Build & Test" | |
env: | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: ON | |
uses: ashutoshvarma/action-cmake-build@master | |
with: | |
build-dir: ${{ github.workspace }}/build | |
source-dir: ${{ github.workspace }} | |
cc: gcc | |
cxx: g++ | |
build-type: ${{ matrix.buildType }} | |
run-test: true | |
ctest-options: ${{ env.CTEST_OPTIONS }} | |
windows-msvc-ssl: | |
strategy: | |
matrix: | |
buildType: [Debug, Release] | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: "Build & Test" | |
env: | |
CMAKE_GENERATOR: "Visual Studio 17 2022" | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: OFF | |
uses: ashutoshvarma/action-cmake-build@master | |
with: | |
build-dir: ${{ github.workspace }}/build | |
source-dir: ${{ github.workspace }} | |
build-type: ${{ matrix.buildType }} | |
run-test: true | |
ctest-options: ${{ env.CTEST_OPTIONS }} | |
windows-msvc-openssl: | |
runs-on: windows-latest | |
steps: | |
- name: Install OpenSSL | |
run: choco install openssl -y | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: "Build & Test" | |
env: | |
CMAKE_GENERATOR: "Visual Studio 17 2022" | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: ON | |
CPR_FORCE_OPENSSL_BACKEND: ON | |
uses: ashutoshvarma/action-cmake-build@master | |
with: | |
build-dir: ${{ github.workspace }}/build | |
source-dir: ${{ github.workspace }} | |
build-type: Release | |
run-test: true | |
ctest-options: ${{ env.CTEST_OPTIONS }} | |
macos-clang-ssl: | |
strategy: | |
matrix: | |
buildType: [Debug, Release] | |
runs-on: macos-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: "Build & Test" | |
env: | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: OFF | |
uses: ashutoshvarma/action-cmake-build@master | |
with: | |
build-dir: ${{ github.workspace }}/build | |
source-dir: ${{ github.workspace }} | |
cc: clang | |
cxx: clang++ | |
build-type: ${{ matrix.buildType }} | |
run-test: true | |
ctest-options: ${{ env.CTEST_OPTIONS }} | |
macos-clang-darwinssl: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: "Build & Test" | |
env: | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: OFF | |
CPR_FORCE_DARWINSSL_BACKEND: ON | |
uses: ashutoshvarma/action-cmake-build@master | |
with: | |
build-dir: ${{ github.workspace }}/build | |
source-dir: ${{ github.workspace }} | |
cc: clang | |
cxx: clang++ | |
build-type: Release | |
run-test: true | |
ctest-options: ${{ env.CTEST_OPTIONS }} | |
macos-clang-openssl: | |
runs-on: macos-latest | |
steps: | |
- name: Install OpenSSL | |
run: brew install openssl | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: "Build & Test" | |
env: | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: ON | |
CPR_FORCE_OPENSSL_BACKEND: ON | |
OPENSSL_ROOT_DIR: "${{ env.MACOS_OPENSSL_ROOT_DIR }}" | |
OPENSSL_LIBRARIES: "${{ env.MACOS_OPENSSL_ROOT_DIR }}/lib" | |
LDFLAGS: "-L${{ env.MACOS_OPENSSL_ROOT_DIR }}/lib" | |
CPPFLAGS: "-I${{ env.MACOS_OPENSSL_ROOT_DIR }}/include" | |
PKG_CONFIG_PATH: "${{ env.MACOS_OPENSSL_ROOT_DIR }}/lib/pkgconfig" | |
uses: ashutoshvarma/action-cmake-build@master | |
with: | |
build-dir: ${{ github.workspace }}/build | |
source-dir: ${{ github.workspace }} | |
cc: clang | |
cxx: clang++ | |
build-type: Release | |
run-test: true | |
ctest-options: ${{ env.CTEST_OPTIONS }} | |
macos-clang-openssl-boost: | |
runs-on: macos-latest | |
steps: | |
- name: Install Boost | |
run: brew install boost | |
- name: Install OpenSSL | |
run: brew install openssl | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: "Build & Test" | |
env: | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: ON | |
CPR_FORCE_OPENSSL_BACKEND: ON | |
CPR_USE_BOOST_FILESYSTEM: ON | |
OPENSSL_ROOT_DIR: "${{ env.MACOS_OPENSSL_ROOT_DIR }}" | |
OPENSSL_LIBRARIES: "${{ env.MACOS_OPENSSL_ROOT_DIR }}/lib" | |
LDFLAGS: "-L${{ env.MACOS_OPENSSL_ROOT_DIR }}/lib" | |
CPPFLAGS: "-I${{ env.MACOS_OPENSSL_ROOT_DIR }}/include" | |
PKG_CONFIG_PATH: "${{ env.MACOS_OPENSSL_ROOT_DIR }}/lib/pkgconfig" | |
uses: ashutoshvarma/action-cmake-build@master | |
with: | |
build-dir: ${{ github.workspace }}/build | |
source-dir: ${{ github.workspace }} | |
cc: clang | |
cxx: clang++ | |
build-type: Release | |
run-test: true | |
ctest-options: ${{ env.CTEST_OPTIONS }} |