Skip to content

Add boost build to ci #58

Add boost build to ci

Add boost build to ci #58

Workflow file for this run

# See runners details:
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#preinstalled-software
name: CI
on:
push:
branches: ["master", "0.7-dev"]
pull_request:
jobs:
Build-Windows:
# The type of runner that the job will run on
name: ${{ matrix.config.name }} (${{ matrix.build_type }}, ${{ matrix.config.cxx }}, C++${{ matrix.cppstd }})
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- name: "Windows Latest MSVC"
# https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md
os: windows-latest
cc: "cl"
cxx: "cl"
generator: "Visual Studio 17 2022"
build_type:
- Release
- Debug
cppstd:
- 17
- 20
env:
CXX: ${{ matrix.config.cxx }}
RESTINIO_BUILD_DIR: _build_${{ matrix.config.cxx }}_cppstd${{ matrix.cppstd }}_${{ matrix.build_type }}
steps:
- uses: actions/checkout@v3
- name: Print env
run: |
echo github.event.action: ${{ github.event.action }}
echo github.event_name: ${{ github.event_name }}
- name: Install dependencies
run: |
gem install Mxx_ru
- name: Configure
shell: bash
run: |
mxxruexternals
cd dev
cmake \
-B $RESTINIO_BUILD_DIR \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DRESTINIO_EXPLICIT_CPPSTD=${{ matrix.cppstd }} \
-DRESTINIO_TEST_SUFFIX=" [cpp${{ matrix.cppstd }}_${{ matrix.build_type }}]" \
-G "${{ matrix.config.generator }}"
- name: Build
working-directory: ./dev
shell: bash
run: |
cmake \
--build $RESTINIO_BUILD_DIR \
--config ${{ matrix.build_type }} \
--parallel ${NUMBER_OF_PROCESSORS} \
--verbose
- name: Test
shell: bash
working-directory: ./dev
run: |
ctest \
-T test \
-C ${{ matrix.build_type }} \
--test-dir $RESTINIO_BUILD_DIR \
--output-on-failure \
--no-compress-output
Build-Linux:
# The type of runner that the job will run on
name: Ubuntu-22.04 (${{ matrix.build_settings.toolset }}-${{ matrix.build_settings.toolset_version }}, ${{ matrix.build_type }}, C++${{ matrix.build_settings.cppstd }}, ${{matrix.build_settings.asio_source}} asio)
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
build_settings:
- toolset: gcc
toolset_version: 9
cppstd: 17
asio_source: standalone
- toolset: gcc
toolset_version: 9
cppstd: 17
asio_source: boost
- toolset: gcc
toolset_version: 9
cppstd: 17
asio_source: boost-system-package
- toolset: gcc
toolset_version: 12
cppstd: 17
asio_source: standalone
- toolset: gcc
toolset_version: 12
cppstd: 20
asio_source: standalone
- toolset: gcc
toolset_version: 12
cppstd: 20
asio_source: boost
- toolset: clang
toolset_version: 13
cppstd: 17
asio_source: standalone
- toolset: clang
toolset_version: 15
cppstd: 17
asio_source: standalone
- toolset: clang
toolset_version: 15
cppstd: 20
asio_source: standalone
build_type:
- Release
- Debug
env:
RESTINIO_BUILD_TAG: ${{ matrix.build_settings.toolset }}-${{ matrix.build_settings.toolset_version }}_cpp${{ matrix.build_settings.cppstd }}_${{ matrix.build_type }}_${{matrix.build_settings.asio_source}}_asio
steps:
- uses: actions/checkout@v3
- name: Prepare env
run: |
echo github.event.action: ${{ github.event.action }}
echo github.event_name: ${{ github.event_name }}
echo "RESTINIO_BUILD_DIR=_build_${RESTINIO_BUILD_TAG}" >> $GITHUB_ENV
echo "CC=${{ matrix.build_settings.toolset }}-${{ matrix.build_settings.toolset_version }}" >> $GITHUB_ENV
if [ "${{ matrix.build_settings.toolset }}" == "gcc" ]; then
echo "CXX=g++-${{ matrix.build_settings.toolset_version }}" >> $GITHUB_ENV
echo "AR=gcc-ar-${{ matrix.build_settings.toolset_version }}" >> $GITHUB_ENV
else
echo "CXX=clang++-${{ matrix.build_settings.toolset_version }}" >> $GITHUB_ENV
echo "AR=llvm-ar-${{ matrix.build_settings.toolset_version }}" >> $GITHUB_ENV
fi
- name: Install dependencies
run: |
sudo gem install Mxx_ru
if [ "${{ matrix.build_settings.asio_source }}" == "boost-system-package" ]; then
sudo apt-get update && sudo apt-get install -y libboost-all-dev
fi
mxxruexternals
- name: Configure
if: ${{ matrix.build_settings.asio_source == 'standalone' }}
shell: bash
run: |
cd dev
cmake \
-B ${RESTINIO_BUILD_DIR} \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DRESTINIO_EXPLICIT_CPPSTD=${{ matrix.build_settings.cppstd }} \
-DRESTINIO_TEST_SUFFIX=" [${RESTINIO_BUILD_TAG}]"
- name: Obtain Boost
if: ${{ matrix.build_settings.asio_source == 'boost' }}
uses: MarkusJx/[email protected]
id: install-boost
with:
boost_version: 1.83.0
boost_install_dir: ${{github.workspace}}/local_boost
toolset: ${{ matrix.build_settings.toolset }}
platform_version: 22.04
- name: Configure
if: ${{ matrix.build_settings.asio_source == 'boost' }}
shell: bash
run: |
cd dev
cmake \
-B ${RESTINIO_BUILD_DIR} \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DRESTINIO_EXPLICIT_CPPSTD=${{ matrix.build_settings.cppstd }} \
-DRESTINIO_ASIO_SOURCE=boost \
-DBOOST_ROOT=${{ steps.install-boost.outputs.BOOST_ROOT }} \
-DRESTINIO_TEST_SUFFIX=" [${RESTINIO_BUILD_TAG}]"
- name: Configure
if: ${{ matrix.build_settings.asio_source == 'boost-system-package' }}
shell: bash
run: |
cd dev
cmake \
-B ${RESTINIO_BUILD_DIR} \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DRESTINIO_EXPLICIT_CPPSTD=${{ matrix.build_settings.cppstd }} \
-DRESTINIO_ASIO_SOURCE=boost \
-DRESTINIO_TEST_SUFFIX=" [${RESTINIO_BUILD_TAG}]"
- name: Build
working-directory: ./dev
shell: bash
run: |
cmake \
--build $RESTINIO_BUILD_DIR \
--parallel $(nproc) \
--verbose
- name: Test
shell: bash
working-directory: ./dev
run: |
ctest \
-T test \
--test-dir $RESTINIO_BUILD_DIR \
--output-on-failure \
--no-compress-output
Build-Macos:
# The type of runner that the job will run on
name: macos-12 (${{ matrix.build_type }}, C++${{ matrix.cppstd }})
runs-on: macos-12
strategy:
fail-fast: false
matrix:
cppstd:
- 17
- 20
build_type:
- Release
- Debug
env:
RESTINIO_BUILD_DIR: _build_cpp${{ matrix.cppstd }}_${{ matrix.build_type }}
steps:
- uses: actions/checkout@v3
- name: Print env
run: |
echo github.event.action: ${{ github.event.action }}
echo github.event_name: ${{ github.event_name }}
- name: Install dependencies
run: |
gem install Mxx_ru
- name: Configure
shell: bash
run: |
mxxruexternals
cd dev
cmake \
-B ${RESTINIO_BUILD_DIR} \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DRESTINIO_EXPLICIT_CPPSTD=${{ matrix.cppstd }} \
-DRESTINIO_TEST_SUFFIX=" [cpp${{ matrix.cppstd }}_${{ matrix.build_type }}]"
- name: Build
working-directory: ./dev
shell: bash
run: |
cmake \
--build $RESTINIO_BUILD_DIR \
--parallel $(sysctl -n hw.ncpu) \
--verbose
- name: Test
shell: bash
working-directory: ./dev
run: |
ctest \
-T test \
--test-dir $RESTINIO_BUILD_DIR \
--output-on-failure \
--no-compress-output