Skip to content

Update doc scripts

Update doc scripts #24

Workflow file for this run

#
# 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