Skip to content

Update min and max versions of GCC used in CI tests of Ubuntu 24.10 t… #139

Update min and max versions of GCC used in CI tests of Ubuntu 24.10 t…

Update min and max versions of GCC used in CI tests of Ubuntu 24.10 t… #139

name: Test on Windows
on:
push:
branches:
- master
pull_request:
workflow_dispatch:
inputs:
debug_enabled:
description: 'Run the tests with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
required: false
default: false
schedule:
# Run at 8:13 on the 1st day of each month
- cron: '13 8 1 * *'
jobs:
MSVC:
runs-on: ${{matrix.config.runs_on}}
strategy:
fail-fast: false
matrix:
config:
- {runs_on: windows-2022, msvc_version_year: 2022, msvc_version: 17, multi_config: true, python_path: "C:\\Python39", msvc_program_files: "C:\\Program Files", config: Debug, cxx_standard: 17}
- {runs_on: windows-2022, msvc_version_year: 2022, msvc_version: 17, multi_config: true, python_path: "C:\\Python39", msvc_program_files: "C:\\Program Files", config: Release, cxx_standard: 17}
- {runs_on: windows-2022, msvc_version_year: 2022, msvc_version: 17, multi_config: false, python_path: "C:\\Python39", msvc_program_files: "C:\\Program Files", config: Debug, cxx_standard: 17}
- {runs_on: windows-2022, msvc_version_year: 2022, msvc_version: 17, multi_config: false, python_path: "C:\\Python39", msvc_program_files: "C:\\Program Files", config: Release, cxx_standard: 17}
- {runs_on: windows-2022, msvc_version_year: 2022, msvc_version: 17, multi_config: false, python_path: "C:\\Python39", msvc_program_files: "C:\\Program Files", config: Debug}
- {runs_on: windows-2022, msvc_version_year: 2022, msvc_version: 17, multi_config: false, python_path: "C:\\Python39", msvc_program_files: "C:\\Program Files", config: Release}
- {runs_on: windows-2019, msvc_version_year: 2019, msvc_version: 16, multi_config: false, python_path: "C:\\Python36", msvc_program_files: "C:\\Program Files (x86)", config: Debug, cxx_standard: 17}
- {runs_on: windows-2019, msvc_version_year: 2019, msvc_version: 16, multi_config: false, python_path: "C:\\Python36", msvc_program_files: "C:\\Program Files (x86)", config: Release, cxx_standard: 17}
- {runs_on: windows-2019, msvc_version_year: 2019, msvc_version: 16, multi_config: false, python_path: "C:\\Python36", msvc_program_files: "C:\\Program Files (x86)", config: Debug}
- {runs_on: windows-2019, msvc_version_year: 2019, msvc_version: 16, multi_config: false, python_path: "C:\\Python36", msvc_program_files: "C:\\Program Files (x86)", config: Release}
env:
PYTHON3_PATH: ${{matrix.config.python_path}}
CMAKE_GENERATOR: "Visual Studio ${{matrix.config.msvc_version}} ${{matrix.config.msvc_version_year}}"
ADDITIONAL_CMAKE_ARGS: -DFRUIT_USES_BOOST=False -T host=x64
CONFIGURATION: ${{matrix.config.config}}
VCVARSALL_DIR: "${{matrix.config.msvc_program_files}}\\Microsoft Visual Studio\\${{matrix.config.msvc_version_year}}\\Enterprise\\VC\\Auxiliary\\Build"
FRUIT_ALLOW_MULTI_CONFIG: ${{matrix.config.multi_config}}
steps:
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
- name: set-cmake-debug-cxx-flags
if: matrix.config.config == 'Debug'
shell: bash
run: echo "ADDITIONAL_CMAKE_ARGS=$ADDITIONAL_CMAKE_ARGS -DCMAKE_CXX_FLAGS=\"/WX /DFRUIT_DEBUG /DFRUIT_EXTRA_DEBUG /D_ITERATOR_DEBUG_LEVEL=2\"" >> $GITHUB_ENV
- name: set-cmake-release-cxx-flags
if: matrix.config.config == 'Release'
shell: bash
run: echo "ADDITIONAL_CMAKE_ARGS=$ADDITIONAL_CMAKE_ARGS -DCMAKE_CXX_FLAGS=\"/WX\"" >> $GITHUB_ENV
- name: set-cmake-cxx-standard-flag
if: matrix.config.cxx_standard != ''
shell: bash
run: echo "ADDITIONAL_CMAKE_ARGS=$ADDITIONAL_CMAKE_ARGS -DCMAKE_CXX_STANDARD=${{matrix.config.cxx_standard}}" >> $GITHUB_ENV
- name: set-cmake-generator-arch-old-style
if: matrix.config.msvc_version < 16
shell: bash
run: echo "CMAKE_GENERATOR=$CMAKE_GENERATOR Win64" >> $GITHUB_ENV
- name: set-cmake-generator-arch-new-style
if: matrix.config.msvc_version >= 16
shell: bash
run: echo "ADDITIONAL_CMAKE_ARGS=$ADDITIONAL_CMAKE_ARGS -A x64" >> $GITHUB_ENV
- name: set-fruit-allow-multi-config
if: matrix.config.multi_config
shell: bash
run: echo "ADDITIONAL_CMAKE_ARGS=$ADDITIONAL_CMAKE_ARGS -DFRUIT_ALLOW_MULTI_CONFIG=True" >> $GITHUB_ENV
- uses: actions/checkout@v3
- name: install
shell: cmd
run: cmd /c extras\scripts\postsubmit.bat
- name: Setup tmate session
uses: mxschmitt/action-tmate@v3
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled && failure() }}
MinGW:
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
config:
- {use_boost: false, config: Debug, extra_debug: true}
- {use_boost: false, config: Release}
- {use_boost: true, config: Release}
- {use_boost: true, config: Release, disable_shared_libs: true}
env:
PYTHON3_PATH: "C:\\Python39"
CMAKE_GENERATOR: 'MinGW Makefiles'
ADDITIONAL_CMAKE_ARGS: -DBUILD_SHARED_LIBS=${{!matrix.config.disable_shared_libs}} -DFRUIT_ADD_WNO_UNKNOWN_WARNING_OPTION=OFF
CONFIGURATION: ${{matrix.config.config}}
steps:
- name: Set up MinGW
uses: egor-tensin/setup-mingw@v2
- name: Build Boost
uses: egor-tensin/build-boost@v1
if: matrix.config.use_boost
with:
version: 1.80.0
libraries: headers
configuration: ${{matrix.config.config}}
- name: set-cmake-boost-flags
if: matrix.config.use_boost
shell: bash
run: echo "ADDITIONAL_CMAKE_ARGS=$ADDITIONAL_CMAKE_ARGS -DBoost_INCLUDE_DIR=D:\a\fruit\boost" >> $GITHUB_ENV
- name: set-cmake-non-boost-flags
if: ${{ !matrix.config.use_boost }}
shell: bash
run: echo "ADDITIONAL_CMAKE_ARGS=$ADDITIONAL_CMAKE_ARGS -DFRUIT_USES_BOOST=False" >> $GITHUB_ENV
- name: set-cmake-extra-debug-flags
if: matrix.config.extra_debug
shell: bash
run: echo "ADDITIONAL_CMAKE_ARGS=$ADDITIONAL_CMAKE_ARGS -DCMAKE_CXX_FLAGS=\"-Werror -DFRUIT_DEBUG=1 -DFRUIT_EXTRA_DEBUG=1 -D_GLIBCXX_DEBUG=1\"" >> $GITHUB_ENV
- name: set-cmake-no-extra-debug-flags
if: ${{ !matrix.config.extra_debug }}
shell: bash
run: echo "ADDITIONAL_CMAKE_ARGS=$ADDITIONAL_CMAKE_ARGS -DCMAKE_CXX_FLAGS=\"-Werror\"" >> $GITHUB_ENV
- uses: actions/checkout@v3
- name: install
shell: cmd
run: cmd /c extras\scripts\postsubmit.bat
- name: Setup tmate session
uses: mxschmitt/action-tmate@v3
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled && failure() }}