GitHub action for auto-updating GIT_TAG in readme #1087
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. | |
jobs: | |
ubuntu-clang-openssl: | |
strategy: | |
matrix: | |
container: ["ubuntu:18.04", "ubuntu:20.04", "ubuntu:22.04", "ubuntu:23.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/actions-setup-cmake@v1.14 | |
with: | |
cmake-version: '3.22.x' | |
- name: Checkout | |
uses: actions/checkout@v3.1.0 | |
- 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: -V | |
ubuntu-gcc-openssl: | |
strategy: | |
matrix: | |
container: ["ubuntu:18.04", "ubuntu:20.04", "ubuntu:22.04", "ubuntu:23.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/actions-setup-cmake@v1.14 | |
with: | |
cmake-version: '3.22.x' | |
- name: Checkout | |
uses: actions/checkout@v3.1.0 | |
- 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: -V | |
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/actions-setup-cmake@v1.14 | |
with: | |
cmake-version: '3.22.x' | |
- name: Checkout | |
uses: actions/checkout@v3.1.0 | |
- 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: -V | |
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.1.0 | |
- 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: -V | |
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.1.0 | |
- 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: -V | |
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.1.0 | |
- 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: -V | |
windows-msvc-ssl: | |
strategy: | |
matrix: | |
buildType: [Debug, Release] | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3.1.0 | |
- 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: -V | |
windows-msvc-openssl: | |
runs-on: windows-latest | |
steps: | |
- name: Install OpenSSL | |
run: choco install openssl -y | |
- name: Checkout | |
uses: actions/checkout@v3.1.0 | |
- 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: -V | |
macos-clang-openssl: | |
runs-on: macos-latest | |
steps: | |
- name: Install OpenSSL | |
run: | | |
brew install openssl | |
echo 'export PATH="/usr/local/opt/openssl@3/bin:$PATH"' >> /Users/runner/.bash_profile | |
source ~/.bash_profile | |
export LDFLAGS="-L/usr/local/opt/openssl@3/lib" | |
export CPPFLAGS="-I/usr/local/opt/openssl@3/include" | |
export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig" | |
- name: Checkout | |
uses: actions/checkout@v3.1.0 | |
- name: "Build & Test" | |
env: | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: ON | |
CPR_FORCE_OPENSSL_BACKEND: ON | |
OPENSSL_ROOT_DIR: "/usr/local/opt/openssl@3" | |
OPENSSL_LIBRARIES: "/usr/local/opt/openssl@3/lib" | |
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: -V | |
macos-clang-ssl: | |
strategy: | |
matrix: | |
buildType: [Debug, Release] | |
runs-on: macos-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3.1.0 | |
- 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: -V | |
macos-clang-darwinssl: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3.1.0 | |
- 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: -V | |
macos-clang-openssl-boost: | |
runs-on: macos-latest | |
steps: | |
- name: Install Boost | |
run: brew install boost | |
- name: Install OpenSSL | |
run: | | |
brew install openssl | |
echo 'export PATH="/usr/local/opt/openssl@3/bin:$PATH"' >> /Users/runner/.bash_profile | |
source ~/.bash_profile | |
- name: Checkout | |
uses: actions/checkout@v3.1.0 | |
- name: "Build & Test" | |
env: | |
CPR_BUILD_TESTS: ON | |
CPR_BUILD_TESTS_SSL: OFF | |
CPR_USE_BOOST_FILESYSTEM: ON | |
CPR_FORCE_OPENSSL_BACKEND: ON | |
OPENSSL_ROOT_DIR: "/usr/local/opt/openssl@3" | |
OPENSSL_LIBRARIES: "/usr/local/opt/openssl@3/lib" | |
LDFLAGS: "-L/usr/local/opt/openssl@3/lib" | |
CPPFLAGS: "-I/usr/local/opt/openssl@3/include" | |
PKG_CONFIG_PATH: "/usr/local/opt/openssl@3/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: -V |