Update doc scripts #24
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/ws_proto/ | |
# | |
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: "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: "gcc-13-multilib g++-13-multilib zlib1g-dev zlib1g-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: "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: "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: "gcc-13-multilib g++-13-multilib zlib1g-dev zlib1g-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: "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: "gcc-13-multilib g++-13-multilib zlib1g-dev zlib1g-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: "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: "gcc-13-multilib g++-13-multilib zlib1g-dev zlib1g-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" | |
# 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: "gcc-multilib g++-multilib zlib1g-dev zlib1g-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: "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: "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: "gcc-multilib g++-multilib zlib1g-dev zlib1g-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: "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: "gcc-multilib g++-multilib zlib1g-dev zlib1g-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" | |
# 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: | |
# image: ${{ matrix.container }} | |
# options: --privileged | |
# timeout-minutes: 120 | |
# steps: | |
# - name: Enable Node 16 | |
# run: | | |
# echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV | |
# - name: Clone Boost.WS.Proto | |
# uses: actions/checkout@v3 | |
# with: | |
# path: ws-proto-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 }} | |
# 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: ws-proto-root | |
# scan-modules-ignore: ws_proto | |
# - name: Install zlib (Windows) | |
# uses: alandefreitas/cpp-actions/[email protected] | |
# if: ${{ startsWith(matrix.runs-on, 'windows') }} | |
# id: zlib-install | |
# with: | |
# vcpkg: zlib | |
# 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' }} | |
# echo "using zlib : : <include>\"${home}/vcpkg-root/installed/${triplet}/include\" <search>\"${home}/vcpkg-root/installed/${triplet}/lib\" <name>zlib : <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' ) | |
# cat ${toolchain} | |
# echo "toolchain=${toolchain}" >> $GITHUB_OUTPUT | |
# - name: ASLR Fix | |
# if: ${{ startsWith(matrix.runs-on, 'ubuntu' )}} | |
# run: | | |
# sysctl vm.mmap_rnd_bits=28 | |
# - 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"/ws-proto-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 }} | |
# env: | |
# ASAN_OPTIONS: ${{ (startsWith(matrix.compiler, 'apple-clang') && 'detect_invalid_pointer_pairs=0') || 'detect_invalid_pointer_pairs=2' }} | |
# with: | |
# source-dir: boost-root | |
# modules: ws_proto | |
# 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_WS_PROTO_BUILD_TESTS=ON | |
# export-compile-commands: ${{ matrix.time-trace }} | |
# package: false | |
# package-artifact: false | |
# ref-source-dir: boost-root/libs/ws_proto | |
# 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/ws_proto | |
# 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/ws_proto/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/ws_proto | |
# 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 "[![codecov](https://codecov.io/github/$GITHUB_REPOSITORY/commit/$GITHUB_SHA/graphs/sunburst.svg)](https://codecov.io/github/$GITHUB_REPOSITORY/commit/$GITHUB_SHA)" >> $GITHUB_STEP_SUMMARY | |
# echo "" >> $GITHUB_STEP_SUMMARY | |
# echo "" >> $GITHUB_STEP_SUMMARY | |
# echo "Commit: [![codecov](https://codecov.io/github/$GITHUB_REPOSITORY/commit/$GITHUB_SHA/graph/badge.svg)](https://codecov.io/github/$GITHUB_REPOSITORY/commit/$GITHUB_SHA)" >> $GITHUB_STEP_SUMMARY | |
# echo "" >> $GITHUB_STEP_SUMMARY | |
# echo "Branch: [![codecov](https://codecov.io/github/$GITHUB_REPOSITORY/branch/$GITHUB_REF_NAME/graph/badge.svg)](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 WS.Proto | |
# 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-.*\..*\..*' | |
antora: | |
needs: [ runner-selection ] | |
strategy: | |
matrix: | |
include: | |
- { name: Windows, os: windows-latest } | |
# - { name: Ubuntu, os: ubuntu-latest } | |
# - { name: MacOS, os: macos-latest } | |
name: Antora Docs (${{ matrix.name }}) | |
runs-on: ${{ fromJSON(needs.runner-selection.outputs.labelmatrix)[matrix.os] }} | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Install packages | |
uses: alandefreitas/cpp-actions/[email protected] | |
with: | |
apt-get: git cmake | |
- name: Clone Boost.WS.Proto | |
uses: actions/checkout@v3 | |
with: | |
path: ws-proto-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: 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: ws-proto-root | |
scan-modules-ignore: ws_proto | |
- 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"/ws-proto-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 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Setup Ninja | |
if: runner.os == 'Windows' | |
uses: seanmiddleditch/gha-setup-ninja@v5 | |
- name: Build Antora Docs | |
shell: cmd | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
#git config --global --add safe.directory "$(pwd)" | |
# BOOST_SRC_DIR="$(pwd)/boost-root" | |
# export BOOST_SRC_DIR | |
cd boost-root/libs/ws_proto | |
cd doc | |
.\build_antora.bat | |
# # Antora returns zero even if it fails, so we check if the site directory exists | |
# if [ ! -d "build/site" ]; then | |
# echo "Antora build failed" | |
# exit 1 | |
# fi | |
- name: Create Antora Docs Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: antora-docs-${{ matrix.name }} | |
path: doc/build/site |