Fix MinGW builds in GHA CI #7
Workflow file for this run
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
# | ||
# Copyright (c) 2023 Christian Mazakas | ||
# Copyright (c) 2023 Alan de Freitas | ||
# Copyright (c) 2021-2023 Sam Darwin | ||
# Copyright (c) 2020-2021 Peter Dimov | ||
# Copyright (c) 2021 Andrey Semashev | ||
# | ||
# Distributed under the Boost Software License, Version 1.0. (See accompanying | ||
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
# | ||
# Official repository: https://github.com/CPPAlliance/http_io/ | ||
# | ||
name: CI | ||
on: | ||
pull_request: | ||
push: | ||
branches: | ||
- master | ||
- develop | ||
- bugfix/** | ||
- feature/** | ||
- fix/** | ||
- pr/** | ||
concurrency: | ||
group: ${{format('{0}:{1}', github.repository, github.ref)}} | ||
cancel-in-progress: true | ||
env: | ||
GIT_FETCH_JOBS: 8 | ||
NET_RETRY_COUNT: 5 | ||
DEFAULT_BUILD_VARIANT: debug,release | ||
UBSAN_OPTIONS: "print_stacktrace=1" | ||
ASAN_OPTIONS: "detect_invalid_pointer_pairs=2" | ||
jobs: | ||
runner-selection: | ||
name: Runner Selection | ||
runs-on: ${{ github.repository_owner == 'boostorg' && fromJSON('[ "self-hosted", "linux", "x64", "ubuntu-latest-aws" ]') || 'ubuntu-latest' }} | ||
outputs: | ||
labelmatrix: ${{ steps.aws_hosted_runners.outputs.labelmatrix }} | ||
steps: | ||
- name: AWS Hosted Runners | ||
id: aws_hosted_runners | ||
uses: cppalliance/[email protected] | ||
build: | ||
needs: [ runner-selection ] | ||
defaults: | ||
run: | ||
shell: bash | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
# Windows compilers | ||
# | ||
# - compiler: "msvc" | ||
# version: "14.34" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# runs-on: "windows-2022" | ||
# b2-toolset: "msvc-14.3" | ||
# generator: "Visual Studio 17 2022" | ||
# is-latest: true | ||
# name: "MSVC 14.34: C++17-20" | ||
# build-type: "Release" | ||
# build-cmake: true | ||
# - compiler: "msvc" | ||
# version: "14.34" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# runs-on: "windows-2022" | ||
# b2-toolset: "msvc-14.3" | ||
# generator: "Visual Studio 17 2022" | ||
# is-latest: true | ||
# name: "MSVC 14.34: C++17-20 (x86)" | ||
# x86: true | ||
# build-type: "Release" | ||
# - compiler: "msvc" | ||
# version: "14.34" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# runs-on: "windows-2022" | ||
# b2-toolset: "msvc-14.3" | ||
# generator: "Visual Studio 17 2022" | ||
# is-latest: true | ||
# name: "MSVC 14.34: C++17-20 (shared)" | ||
# shared: true | ||
# build-type: "Release" | ||
# build-cmake: true | ||
# - compiler: "msvc" | ||
# version: "14.29" | ||
# cxxstd: "14,17" | ||
# latest-cxxstd: "17" | ||
# runs-on: "windows-2019" | ||
# b2-toolset: "msvc-14.2" | ||
# generator: "Visual Studio 16 2019" | ||
# is-earliest: true | ||
# name: "MSVC 14.29: C++14-17" | ||
# build-type: "Release" | ||
# - compiler: "clang-cl" | ||
# version: "*" | ||
# cxx: "clang++-cl" | ||
# cc: "clang-cl" | ||
# runs-on: "windows-2022" | ||
# b2-toolset: "clang-win" | ||
# generator-toolset: "ClangCL" | ||
# is-latest: true | ||
# is-earliest: true | ||
# name: "Windows-Clang" | ||
# build-type: "Release" | ||
# build-cmake: true | ||
- compiler: "mingw" | ||
version: "*" | ||
cxx: "g++" | ||
cc: "gcc" | ||
runs-on: "windows-2022" | ||
b2-toolset: "gcc" | ||
generator: "MinGW Makefiles" | ||
is-latest: true | ||
is-earliest: true | ||
name: "MinGW" | ||
build-type: "Release" | ||
build-cmake: true | ||
- compiler: "mingw" | ||
version: "*" | ||
cxx: "g++" | ||
cc: "gcc" | ||
runs-on: "windows-2022" | ||
b2-toolset: "gcc" | ||
generator: "MinGW Makefiles" | ||
is-latest: true | ||
is-earliest: true | ||
name: "MinGW (shared)" | ||
shared: true | ||
build-type: "Release" | ||
build-cmake: true | ||
# # OSX compilers | ||
# # | ||
# - compiler: "apple-clang" | ||
# version: "*" | ||
# cxx: "clang++" | ||
# cc: "clang" | ||
# runs-on: "macos-11" | ||
# b2-toolset: "clang" | ||
# is-latest: true | ||
# is-earliest: true | ||
# name: "Apple-Clang" | ||
# build-type: "Release" | ||
# build-cmake: true | ||
# - compiler: "apple-clang" | ||
# version: "*" | ||
# cxx: "clang++" | ||
# cc: "clang" | ||
# runs-on: "macos-11" | ||
# b2-toolset: "clang" | ||
# is-latest: true | ||
# name: "Apple-Clang (ubsan)" | ||
# build-type: "RelWithDebInfo" | ||
# ubsan: true | ||
# - compiler: "apple-clang" | ||
# version: "*" | ||
# cxx: "clang++" | ||
# cc: "clang" | ||
# runs-on: "macos-11" | ||
# b2-toolset: "clang" | ||
# is-latest: true | ||
# name: "Apple-Clang (asan)" | ||
# build-type: "RelWithDebInfo" | ||
# asan: true | ||
# # Linux compilers | ||
# # | ||
# - compiler: "gcc" | ||
# version: "13" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "g++-13" | ||
# cc: "gcc-13" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.04" | ||
# b2-toolset: "gcc" | ||
# is-latest: true | ||
# name: "GCC 13: C++17-20" | ||
# build-type: "Release" | ||
# install: "cmake zlib1g-dev" | ||
# build-cmake: true | ||
# - compiler: "gcc" | ||
# version: "13" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "g++-13" | ||
# cc: "gcc-13" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.04" | ||
# b2-toolset: "gcc" | ||
# is-latest: true | ||
# name: "GCC 13: C++17-20 (x86)" | ||
# x86: true | ||
# build-type: "Release" | ||
# install: "cmake gcc-13-multilib g++-13-multilib zlib1g-dev zlib1g-dev:i386 libssl-dev:i386" | ||
# - compiler: "gcc" | ||
# version: "13" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "g++-13" | ||
# cc: "gcc-13" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.04" | ||
# b2-toolset: "gcc" | ||
# is-latest: true | ||
# name: "GCC 13: C++17-20 (coverage)" | ||
# coverage: true | ||
# build-type: "Debug" | ||
# cxxflags: "--coverage -fprofile-arcs -ftest-coverage" | ||
# ccflags: "--coverage -fprofile-arcs -ftest-coverage" | ||
# install: "cmake lcov zlib1g-dev wget unzip" | ||
# - compiler: "gcc" | ||
# version: "13" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "g++-13" | ||
# cc: "gcc-13" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.04" | ||
# b2-toolset: "gcc" | ||
# is-latest: true | ||
# name: "GCC 13: C++17-20 (shared)" | ||
# shared: true | ||
# build-type: "Release" | ||
# install: "cmake zlib1g-dev" | ||
# build-cmake: true | ||
# - compiler: "gcc" | ||
# version: "13" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "g++-13" | ||
# cc: "gcc-13" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.04" | ||
# b2-toolset: "gcc" | ||
# is-latest: true | ||
# name: "GCC 13: C++17-20 (shared, x86)" | ||
# shared: true | ||
# x86: true | ||
# build-type: "Release" | ||
# install: "cmake gcc-13-multilib g++-13-multilib zlib1g-dev zlib1g-dev:i386 libssl-dev:i386" | ||
# build-cmake: true | ||
# - compiler: "gcc" | ||
# version: "13" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "g++-13" | ||
# cc: "gcc-13" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.04" | ||
# b2-toolset: "gcc" | ||
# is-latest: true | ||
# name: "GCC 13: C++17-20 (asan)" | ||
# asan: true | ||
# build-type: "RelWithDebInfo" | ||
# install: "cmake zlib1g-dev" | ||
# - compiler: "gcc" | ||
# version: "13" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "g++-13" | ||
# cc: "gcc-13" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.04" | ||
# b2-toolset: "gcc" | ||
# is-latest: true | ||
# name: "GCC 13: C++17-20 (asan, x86)" | ||
# asan: true | ||
# x86: true | ||
# build-type: "RelWithDebInfo" | ||
# install: "cmake gcc-13-multilib g++-13-multilib zlib1g-dev zlib1g-dev:i386 libssl-dev:i386" | ||
# - compiler: "gcc" | ||
# version: "13" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "g++-13" | ||
# cc: "gcc-13" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.04" | ||
# b2-toolset: "gcc" | ||
# is-latest: true | ||
# name: "GCC 13: C++17-20 (ubsan)" | ||
# ubsan: true | ||
# build-type: "RelWithDebInfo" | ||
# install: "cmake zlib1g-dev" | ||
# - compiler: "gcc" | ||
# version: "13" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "g++-13" | ||
# cc: "gcc-13" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.04" | ||
# b2-toolset: "gcc" | ||
# is-latest: true | ||
# name: "GCC 13: C++17-20 (ubsan, x86)" | ||
# ubsan: true | ||
# x86: true | ||
# build-type: "RelWithDebInfo" | ||
# install: "cmake gcc-13-multilib g++-13-multilib zlib1g-dev zlib1g-dev:i386 libssl-dev:i386" | ||
# - compiler: "gcc" | ||
# version: "12" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "g++-12" | ||
# cc: "gcc-12" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:22.04" | ||
# b2-toolset: "gcc" | ||
# name: "GCC 12: C++17-20" | ||
# build-type: "Release" | ||
# - compiler: "gcc" | ||
# version: "11" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "g++-11" | ||
# cc: "gcc-11" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:22.04" | ||
# b2-toolset: "gcc" | ||
# name: "GCC 11: C++17-20" | ||
# build-type: "Release" | ||
# - compiler: "gcc" | ||
# version: "10" | ||
# cxxstd: "14,17" | ||
# latest-cxxstd: "17" | ||
# cxx: "g++-10" | ||
# cc: "gcc-10" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:20.04" | ||
# b2-toolset: "gcc" | ||
# name: "GCC 10: C++14-17" | ||
# build-type: "Release" | ||
# - compiler: "gcc" | ||
# version: "9" | ||
# cxxstd: "14,17" | ||
# latest-cxxstd: "17" | ||
# cxx: "g++-9" | ||
# cc: "gcc-9" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:20.04" | ||
# b2-toolset: "gcc" | ||
# name: "GCC 9: C++14-17" | ||
# build-type: "Release" | ||
# - compiler: "gcc" | ||
# version: "8" | ||
# cxxstd: "14,17" | ||
# latest-cxxstd: "17" | ||
# cxx: "g++-8" | ||
# cc: "gcc-8" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:20.04" | ||
# b2-toolset: "gcc" | ||
# name: "GCC 8: C++14-17" | ||
# build-type: "Release" | ||
# - compiler: "gcc" | ||
# version: "7" | ||
# cxxstd: "14,17" | ||
# latest-cxxstd: "17" | ||
# cxx: "g++-7" | ||
# cc: "gcc-7" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:20.04" | ||
# b2-toolset: "gcc" | ||
# name: "GCC 7: C++14-17" | ||
# build-type: "Release" | ||
# - compiler: "gcc" | ||
# version: "6" | ||
# cxxstd: "11,14" | ||
# latest-cxxstd: "14" | ||
# cxx: "g++-6" | ||
# cc: "gcc-6" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:18.04" | ||
# b2-toolset: "gcc" | ||
# name: "GCC 6: C++11-14" | ||
# build-type: "Release" | ||
# - compiler: "gcc" | ||
# version: "5" | ||
# cxxstd: "11" | ||
# latest-cxxstd: "11" | ||
# cxx: "g++-5" | ||
# cc: "gcc-5" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:18.04" | ||
# b2-toolset: "gcc" | ||
# is-earliest: true | ||
# name: "GCC 5: C++11" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "17" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "clang++-17" | ||
# cc: "clang-17" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.10" | ||
# b2-toolset: "clang" | ||
# is-latest: true | ||
# name: "Clang 17: C++17-20" | ||
# build-type: "Release" | ||
# install: "zlib1g-dev cmake" | ||
# build-cmake: true | ||
# - compiler: "clang" | ||
# version: "17" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "clang++-17" | ||
# cc: "clang-17" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.10" | ||
# b2-toolset: "clang" | ||
# is-latest: true | ||
# name: "Clang 17: C++17-20 (x86)" | ||
# x86: true | ||
# build-type: "Release" | ||
# install: "cmake gcc-multilib g++-multilib zlib1g-dev zlib1g-dev:i386 libssl-dev:i386" | ||
# - compiler: "clang" | ||
# version: "17" | ||
# cxxstd: "20" | ||
# latest-cxxstd: "20" | ||
# cxx: "clang++-17" | ||
# cc: "clang-17" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.10" | ||
# b2-toolset: "clang" | ||
# is-latest: true | ||
# name: "Clang 17: C++20 (time-trace)" | ||
# time-trace: true | ||
# build-type: "Release" | ||
# cxxflags: "-ftime-trace" | ||
# ccflags: "-ftime-trace" | ||
# install: "cmake zlib1g-dev wget unzip" | ||
# - compiler: "clang" | ||
# version: "17" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "clang++-17" | ||
# cc: "clang-17" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.10" | ||
# b2-toolset: "clang" | ||
# is-latest: true | ||
# name: "Clang 17: C++17-20 (asan)" | ||
# asan: true | ||
# build-type: "RelWithDebInfo" | ||
# install: "cmake zlib1g-dev" | ||
# - compiler: "clang" | ||
# version: "17" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "clang++-17" | ||
# cc: "clang-17" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.10" | ||
# b2-toolset: "clang" | ||
# is-latest: true | ||
# name: "Clang 17: C++17-20 (asan, x86)" | ||
# asan: true | ||
# x86: true | ||
# build-type: "RelWithDebInfo" | ||
# install: "cmake gcc-multilib g++-multilib zlib1g-dev zlib1g-dev:i386 libssl-dev:i386" | ||
# - compiler: "clang" | ||
# version: "17" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "clang++-17" | ||
# cc: "clang-17" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.10" | ||
# b2-toolset: "clang" | ||
# is-latest: true | ||
# name: "Clang 17: C++17-20 (ubsan)" | ||
# ubsan: true | ||
# build-type: "RelWithDebInfo" | ||
# install: "cmake zlib1g-dev" | ||
# - compiler: "clang" | ||
# version: "17" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "clang++-17" | ||
# cc: "clang-17" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.10" | ||
# b2-toolset: "clang" | ||
# is-latest: true | ||
# name: "Clang 17: C++17-20 (ubsan, x86)" | ||
# ubsan: true | ||
# x86: true | ||
# build-type: "RelWithDebInfo" | ||
# install: "cmake gcc-multilib g++-multilib zlib1g-dev zlib1g-dev:i386 libssl-dev:i386" | ||
# - compiler: "clang" | ||
# version: "16" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "clang++-16" | ||
# cc: "clang-16" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:23.04" | ||
# install: "cmake" | ||
# b2-toolset: "clang" | ||
# name: "Clang 16: C++17-20" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "15" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "clang++-15" | ||
# cc: "clang-15" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:22.04" | ||
# b2-toolset: "clang" | ||
# name: "Clang 15: C++17-20" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "14" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "clang++-14" | ||
# cc: "clang-14" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:22.04" | ||
# b2-toolset: "clang" | ||
# name: "Clang 14: C++17-20" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "13" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "clang++-13" | ||
# cc: "clang-13" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:22.04" | ||
# b2-toolset: "clang" | ||
# name: "Clang 13: C++17-20" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "12" | ||
# cxxstd: "17,20" | ||
# latest-cxxstd: "20" | ||
# cxx: "clang++-12" | ||
# cc: "clang-12" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:22.04" | ||
# b2-toolset: "clang" | ||
# name: "Clang 12: C++17-20" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "11" | ||
# cxxstd: "14,17" | ||
# latest-cxxstd: "17" | ||
# cxx: "clang++-11" | ||
# cc: "clang-11" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:22.04" | ||
# b2-toolset: "clang" | ||
# name: "Clang 11: C++14-17" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "10" | ||
# cxxstd: "14,17" | ||
# latest-cxxstd: "17" | ||
# cxx: "clang++-10" | ||
# cc: "clang-10" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:20.04" | ||
# b2-toolset: "clang" | ||
# name: "Clang 10: C++14-17" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "9" | ||
# cxxstd: "14,17" | ||
# latest-cxxstd: "17" | ||
# cxx: "clang++-9" | ||
# cc: "clang-9" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:20.04" | ||
# b2-toolset: "clang" | ||
# name: "Clang 9: C++14-17" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "8" | ||
# cxxstd: "14,17" | ||
# latest-cxxstd: "17" | ||
# cxx: "clang++-8" | ||
# cc: "clang-8" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:20.04" | ||
# b2-toolset: "clang" | ||
# name: "Clang 8: C++14-17" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "7" | ||
# cxxstd: "14,17" | ||
# latest-cxxstd: "17" | ||
# cxx: "clang++-7" | ||
# cc: "clang-7" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:20.04" | ||
# b2-toolset: "clang" | ||
# name: "Clang 7: C++14-17" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "6" | ||
# cxxstd: "14,17" | ||
# latest-cxxstd: "17" | ||
# cxx: "clang++-6.0" | ||
# cc: "clang-6.0" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:20.04" | ||
# b2-toolset: "clang" | ||
# name: "Clang 6: C++14-17" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "5" | ||
# cxxstd: "11,14" | ||
# latest-cxxstd: "14" | ||
# cxx: "clang++-5.0" | ||
# cc: "clang-5.0" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:18.04" | ||
# b2-toolset: "clang" | ||
# name: "Clang 5: C++11-14" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "4" | ||
# cxxstd: "11,14" | ||
# latest-cxxstd: "14" | ||
# cxx: "clang++-4.0" | ||
# cc: "clang-4.0" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:18.04" | ||
# b2-toolset: "clang" | ||
# name: "Clang 4: C++11-14" | ||
# build-type: "Release" | ||
# - compiler: "clang" | ||
# version: "^3.8" | ||
# cxxstd: "11" | ||
# latest-cxxstd: "11" | ||
# cxx: "clang++-3.8" | ||
# cc: "clang-3.8" | ||
# runs-on: "ubuntu-latest" | ||
# container: "ubuntu:16.04" | ||
# b2-toolset: "clang" | ||
# is-earliest: true | ||
# name: "Clang ^3.8: C++11" | ||
# build-type: "Release" | ||
name: ${{ matrix.name }} | ||
runs-on: ${{ fromJSON(needs.runner-selection.outputs.labelmatrix)[matrix.runs-on] }} | ||
container: ${{ matrix.container }} | ||
timeout-minutes: 120 | ||
steps: | ||
- name: Clone Boost.Http.Io | ||
uses: actions/checkout@v3 | ||
with: | ||
path: http-io-root | ||
- name: Clone Boost.Http.Proto | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: cppalliance/http_proto | ||
path: http-proto-root | ||
ref: develop | ||
- name: Clone Boost.Buffers | ||
uses: actions/checkout@v3 | ||
with: | ||
path: buffers-root | ||
repository: cppalliance/buffers | ||
ref: develop | ||
- name: Setup C++ | ||
uses: alandefreitas/cpp-actions/[email protected] | ||
id: setup-cpp | ||
with: | ||
compiler: ${{ matrix.compiler }} | ||
version: ${{ matrix.version }} | ||
check-latest: ${{ matrix.compiler != 'clang' || matrix.version != '^3.8' }} | ||
trace-commands: true | ||
- name: Install packages | ||
uses: alandefreitas/cpp-actions/[email protected] | ||
id: package-install | ||
with: | ||
apt-get-add-architecture: 'i386' | ||
apt-get: >- | ||
${{ matrix.install }} | ||
libssl-dev | ||
build-essential | ||
- name: Clone Boost | ||
uses: alandefreitas/cpp-actions/[email protected] | ||
id: boost-clone | ||
with: | ||
branch: ${{ (github.ref_name == 'master' && github.ref_name) || 'develop' }} | ||
boost-dir: boost-source | ||
scan-modules-dir: http-io-root | ||
scan-modules-ignore: http_io | ||
- name: Install packages (Windows) | ||
uses: alandefreitas/cpp-actions/[email protected] | ||
if: ${{ startsWith(matrix.runs-on, 'windows') | ||
Check failure on line 764 in .github/workflows/ci.yml
|
||
id: package-install-windows | ||
with: | ||
vcpkg: "zlib,openssl" | ||
vcpkg-dir: vcpkg-root | ||
vcpkg-triplet: ${{ matrix.x86 && 'x86-windows' || 'x64-windows' }} | ||
- name: Patch user-config.jam (Windows) | ||
id: patch-user-config | ||
shell: bash | ||
if: ${{ startsWith(matrix.runs-on, 'windows') | ||
run: | | ||
set -xe | ||
home=$(pwd) | ||
triplet=${{ matrix.x86 && 'x86-windows' || 'x64-windows' }} | ||
addrmdl=${{ matrix.x86 && '32' || '64' }} | ||
ls -lah "${home}/vcpkg-root/installed/${triplet}/include" | ||
ls -lah "${home}/vcpkg-root/installed/${triplet}/lib" | ||
touch user-config.jam | ||
echo "using zlib : : <include>\"${home}/vcpkg-root/installed/${triplet}/include\" <search>\"${home}/vcpkg-root/installed/${triplet}/lib\" : <address-model>${addrmdl} ;" | sed 's/\/d\//D:\//g' >> user-config.jam | ||
echo "using openssl : : <include>\"${home}/vcpkg-root/installed/${triplet}/include\" <search>\"${home}/vcpkg-root/installed/${triplet}/lib\" <ssl-name>libssl <crypto-name>libcrypto : <address-model>${addrmdl} ;" | sed 's/\/d\//D:\//g' >> user-config.jam | ||
cat user-config.jam | ||
toolchain=$(echo "$GITHUB_WORKSPACE/vcpkg-root/scripts/buildsystems/vcpkg.cmake" | sed 's/\/d\//D:\//g' ) | ||
echo "toolchain=${toolchain}" >> $GITHUB_OUTPUT | ||
# - name: Patch user-config.jam (Windows [MinGW]) | ||
# id: patch-user-config-mingw | ||
# shell: bash | ||
# if: ${{ startsWith(matrix.runs-on, 'windows') && startsWith(matrix.compiler, 'mingw') }} | ||
# run: | | ||
# set -xe | ||
# home=$(pwd) | ||
# touch user-config.jam | ||
# echo "using openssl : : <include>\"C:/Program Files/OpenSSL/include\" <search>\"C:/Program Files/OpenSSL/lib\" <ssl-name>libssl <crypto-name>libcrypto : ;" | sed 's/\/d\//D:\//g' >> user-config.jam | ||
# cat user-config.jam | ||
- name: Patch Boost | ||
id: patch | ||
shell: bash | ||
run: | | ||
set -xe | ||
pwd | ||
ls | ||
ls -lah boost-source | ||
# Identify boost module being tested | ||
module=${GITHUB_REPOSITORY#*/} | ||
echo "module=$module" >> $GITHUB_OUTPUT | ||
# Identify GitHub workspace root | ||
workspace_root=$(echo "$GITHUB_WORKSPACE" | sed 's/\\/\//g') | ||
echo -E "workspace_root=$workspace_root" >> $GITHUB_OUTPUT | ||
# Remove module from boost-source | ||
rm -r "boost-source/libs/$module" || true | ||
# Copy cached boost-source to an isolated boost-root | ||
cp -r boost-source boost-root | ||
# Set boost-root output | ||
cd boost-root | ||
boost_root="$(pwd)" | ||
boost_root=$(echo "$boost_root" | sed 's/\\/\//g') | ||
echo -E "boost_root=$boost_root" >> $GITHUB_OUTPUT | ||
# Patch boost-root with workspace module | ||
cp -r "$workspace_root"/http-io-root "libs/$module" | ||
cp -r "$workspace_root"/buffers-root libs/buffers | ||
cp -r "$workspace_root"/http-proto-root libs/http_proto | ||
python3 tools/boostdep/depinst/depinst.py buffers | ||
python3 tools/boostdep/depinst/depinst.py http_proto | ||
- name: Boost B2 Workflow | ||
uses: alandefreitas/cpp-actions/[email protected] | ||
if: ${{ !matrix.coverage && !matrix.time-trace }} | ||
with: | ||
source-dir: boost-root | ||
modules: http_io | ||
toolset: ${{ matrix.b2-toolset }} | ||
build-variant: ${{ matrix.build-type }} | ||
cxx: ${{ steps.setup-cpp.outputs.cxx || matrix.cxx || '' }} | ||
cxxstd: ${{ matrix.cxxstd }} | ||
address-model: ${{ (matrix.x86 && '32') || '64' }} | ||
asan: ${{ matrix.asan }} | ||
ubsan: ${{ matrix.ubsan }} | ||
shared: ${{ matrix.shared }} | ||
rtti: ${{ (matrix.is-latest && 'on,off') || 'on' }} | ||
cxxflags: ${{ (matrix.asan && '-fsanitize=pointer-subtract') || '' }} | ||
user-config: ${{ (startsWith(matrix.runs-on, 'windows') && format('{0}/user-config.jam', steps.patch.outputs.workspace_root)) || '' }} | ||
stop-on-error: true | ||
- name: Boost CMake Workflow | ||
uses: alandefreitas/cpp-actions/[email protected] | ||
if: ${{ matrix.coverage || matrix.time-trace || matrix.build-cmake || matrix.is-earliest }} | ||
with: | ||
source-dir: boost-root | ||
build-dir: __build_cmake_test__ | ||
generator: ${{ matrix.generator }} | ||
generator-toolset: ${{ matrix.generator-toolset }} | ||
build-type: ${{ matrix.build-type }} | ||
run-tests: true | ||
install-prefix: .local | ||
cxxstd: ${{ matrix.latest-cxxstd }} | ||
cc: ${{ steps.setup-cpp.outputs.cc || matrix.cc }} | ||
ccflags: ${{ matrix.ccflags }} | ||
cxx: ${{ steps.setup-cpp.outputs.cxx || matrix.cxx }} | ||
cxxflags: ${{ matrix.cxxflags }} | ||
shared: ${{ matrix.shared }} | ||
cmake-version: '>=3.15' | ||
extra-args: | | ||
-D Boost_VERBOSE=ON | ||
-D BOOST_INCLUDE_LIBRARIES="${{ steps.patch.outputs.module }}" | ||
-D BOOST_HTTP_IO_BUILD_TESTS=ON | ||
export-compile-commands: ${{ matrix.time-trace }} | ||
package: false | ||
package-artifact: false | ||
ref-source-dir: boost-root/libs/http_io | ||
toolchain: ${{ (startsWith(matrix.runs-on, 'windows') && steps.patch-user-config.outputs.toolchain) || '' }} | ||
- name: Set Path | ||
if: startsWith(matrix.runs-on, 'windows') && matrix.shared | ||
run: echo "$GITHUB_WORKSPACE/.local/bin" >> $GITHUB_PATH | ||
- name: Set LD_LIBRARY_PATH | ||
if: startsWith(matrix.runs-on, 'ubuntu') && matrix.shared | ||
run: | | ||
echo "LD_LIBRARY_PATH=$GITHUB_WORKSPACE/.local/lib:$LD_LIBRARY_PATH" >> "$GITHUB_ENV" | ||
- name: Find Package Integration Workflow | ||
uses: alandefreitas/cpp-actions/[email protected] | ||
if: ${{ matrix.build-cmake || matrix.is-earliest }} | ||
with: | ||
source-dir: boost-root/libs/${{ steps.patch.outputs.module }}/test/cmake_test | ||
build-dir: __build_cmake_install_test__ | ||
generator: ${{ matrix.generator }} | ||
generator-toolset: ${{ matrix.generator-toolset }} | ||
build-type: ${{ matrix.build-type }} | ||
cxxstd: ${{ matrix.latest-cxxstd }} | ||
cc: ${{ steps.setup-cpp.outputs.cc || matrix.cc }} | ||
ccflags: ${{ matrix.ccflags }} | ||
cxx: ${{ steps.setup-cpp.outputs.cxx || matrix.cxx }} | ||
cxxflags: ${{ matrix.cxxflags }} | ||
shared: ${{ matrix.shared }} | ||
install: false | ||
cmake-version: '>=3.15' | ||
extra-args: | | ||
-D BOOST_CI_INSTALL_TEST=ON | ||
-D CMAKE_PREFIX_PATH=${{ steps.patch.outputs.workspace_root }}/.local | ||
ref-source-dir: boost-root/libs/http_io | ||
trace-commands: true | ||
toolchain: ${{ (startsWith(matrix.runs-on, 'windows') && steps.patch-user-config.outputs.toolchain) || '' }} | ||
- name: Subdirectory Integration Workflow | ||
uses: alandefreitas/cpp-actions/[email protected] | ||
if: ${{ matrix.build-cmake || matrix.is-earliest }} | ||
with: | ||
source-dir: boost-root/libs/${{ steps.patch.outputs.module }}/test/cmake_test | ||
build-dir: __build_cmake_subdir_test__ | ||
generator: ${{ matrix.generator }} | ||
generator-toolset: ${{ matrix.generator-toolset }} | ||
build-type: ${{ matrix.build-type }} | ||
cxxstd: ${{ matrix.latest-cxxstd }} | ||
cc: ${{ steps.setup-cpp.outputs.cc || matrix.cc }} | ||
ccflags: ${{ matrix.ccflags }} | ||
cxx: ${{ steps.setup-cpp.outputs.cxx || matrix.cxx }} | ||
cxxflags: ${{ matrix.cxxflags }} | ||
shared: ${{ matrix.shared }} | ||
install: false | ||
cmake-version: '>=3.15' | ||
extra-args: -D BOOST_CI_INSTALL_TEST=OFF | ||
ref-source-dir: boost-root/libs/http_io/test/cmake_test | ||
toolchain: ${{ (startsWith(matrix.runs-on, 'windows') && steps.patch-user-config.outputs.toolchain) || '' }} | ||
- name: Root Project CMake Workflow | ||
uses: alandefreitas/cpp-actions/[email protected] | ||
if: ${{ matrix.build-cmake || matrix.is-earliest }} | ||
with: | ||
source-dir: boost-root/libs/${{ steps.patch.outputs.module }} | ||
build-dir: __build_root_test__ | ||
generator: ${{ matrix.generator }} | ||
generator-toolset: ${{ matrix.generator-toolset }} | ||
build-type: ${{ matrix.build-type }} | ||
run-tests: false | ||
install: false | ||
cxxstd: ${{ matrix.latest-cxxstd }} | ||
cc: ${{ steps.setup-cpp.outputs.cc || matrix.cc }} | ||
ccflags: ${{ matrix.ccflags }} | ||
cxx: ${{ steps.setup-cpp.outputs.cxx || matrix.cxx }} | ||
cxxflags: ${{ matrix.cxxflags }} | ||
shared: ${{ matrix.shared }} | ||
extra-args: -D Boost_VERBOSE=ON -D BUILD_TESTING=ON -D BOOST_SRC_DIR="../boost-root" | ||
cmake-version: '>=3.15' | ||
package: false | ||
package-artifact: false | ||
ref-source-dir: boost-root | ||
toolchain: ${{ (startsWith(matrix.runs-on, 'windows') && steps.patch-user-config.outputs.toolchain) || '' }} | ||
- name: FlameGraph | ||
uses: alandefreitas/cpp-actions/[email protected] | ||
if: matrix.time-trace | ||
with: | ||
source-dir: boost-root/libs/http_io | ||
build-dir: boost-root/__build_cmake_test__ | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Codecov | ||
if: ${{ matrix.coverage }} | ||
run: | | ||
set -x | ||
# Generate report | ||
gcov_tool="gcov" | ||
if command -v "gcov-${{ steps.setup-cpp.outputs.version-major }}.${{ steps.setup-cpp.outputs.version-minor }}" &> /dev/null; then | ||
gcov_tool="gcov" | ||
elif command -v "gcov-${{ steps.setup-cpp.outputs.version-major }}" &> /dev/null; then | ||
gcov_tool="gcov-${{ steps.setup-cpp.outputs.version-major }}" | ||
fi | ||
lcov -c -q -o "boost-root/__build_cmake_test__/coverage.info" -d "boost-root/__build_cmake_test__" --include "$(pwd)/boost-root/libs/${{steps.patch.outputs.module}}/*" --gcov-tool "$gcov_tool" | ||
# Upload to codecov | ||
bash <(curl -s https://codecov.io/bash) -f "boost-root/__build_cmake_test__/coverage.info" | ||
# Summary | ||
echo "# Coverage" >> $GITHUB_STEP_SUMMARY | ||
echo "" >> $GITHUB_STEP_SUMMARY | ||
echo "[](https://codecov.io/github/$GITHUB_REPOSITORY/commit/$GITHUB_SHA)" >> $GITHUB_STEP_SUMMARY | ||
echo "" >> $GITHUB_STEP_SUMMARY | ||
echo "" >> $GITHUB_STEP_SUMMARY | ||
echo "Commit: [](https://codecov.io/github/$GITHUB_REPOSITORY/commit/$GITHUB_SHA)" >> $GITHUB_STEP_SUMMARY | ||
echo "" >> $GITHUB_STEP_SUMMARY | ||
echo "Branch: [](https://codecov.io/github/$GITHUB_REPOSITORY/commit/$GITHUB_SHA)" >> $GITHUB_STEP_SUMMARY | ||
echo "" >> $GITHUB_STEP_SUMMARY | ||
changelog: | ||
needs: [ runner-selection ] | ||
defaults: | ||
run: | ||
shell: bash | ||
name: Changelog Summary | ||
runs-on: ${{ fromJSON(needs.runner-selection.outputs.labelmatrix)['ubuntu-22.04'] }} | ||
timeout-minutes: 120 | ||
steps: | ||
- name: Clone Boost.Http.Io | ||
uses: actions/checkout@v3 | ||
with: | ||
# Avoid the common API rate limit exceeded error in boostorg by including 100 latest commits in any case | ||
fetch-depth: 100 | ||
- name: Changelog | ||
uses: alandefreitas/cpp-actions/[email protected] | ||
with: | ||
thank-non-regular: ${{ startsWith(github.ref, 'refs/tags/') }} | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
limit: 200 | ||
tag-pattern: 'boost-.*\..*\..*' |