From 3701199cfaf575c704765dd895acc5463cda51a0 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 8 Jun 2022 10:52:16 +0200 Subject: [PATCH 1/3] Update Appveyor from Boost.CI Adds MinGW, Cygwin and newer compilers --- .appveyor.yml | 147 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 110 insertions(+), 37 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 2f34e41a..4f32009c 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,4 +1,6 @@ -# Copyright 2017 Daniel James +# Copyright 2016, 2017 Peter Dimov +# Copyright 2017 - 2019 James E. King III +# Copyright 2019 - 2021 Alexander Grund # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) @@ -10,48 +12,119 @@ branches: only: - master - develop + - /bugfix\/.*/ - /feature\/.*/ + - /fix\/.*/ + - /pr\/.*/ + +matrix: + fast_finish: false + # Adding MAYFAIL to any matrix job allows it to fail but the build stays green: + allow_failures: + - MAYFAIL: true environment: + global: + B2_CI_VERSION: 1 + GIT_FETCH_JOBS: 4 + B2_ADDRESS_MODEL: 32,64 + B2_VARIANT: debug,release + matrix: - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - TOOLSET: msvc-9.0,msvc-10.0,msvc-11.0 - ADDRMD: 32 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - TOOLSET: msvc-12.0,msvc-14.0 - ADDRMD: 32,64 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - TOOLSET: msvc-14.1 - CXXSTD: 14,17 - ADDRMD: 32,64 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 - TOOLSET: clang-win - CXXSTD: 14 - ADDRMD: 32,64 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 - TOOLSET: clang-win - CXXSTD: 17 - ADDRMD: 32,64 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 - TOOLSET: clang-win - CXXSTD: latest - ADDRMD: 32,64 + - FLAVOR: Visual Studio 2008, 2010, 2012 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + B2_TOOLSET: msvc-9.0,msvc-10.0,msvc-11.0 + B2_ADDRESS_MODEL: 32 # No 64bit support + + - FLAVOR: Visual Studio 2013, 2015 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + B2_TOOLSET: msvc-12.0,msvc-14.0 + + - FLAVOR: Visual Studio 2017 C++14/17 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + B2_CXXSTD: 14,17 + B2_TOOLSET: msvc-14.1 + + - FLAVOR: Visual Studio 2017 C++2a Strict + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + B2_CXXFLAGS: -permissive- + B2_CXXSTD: 2a + B2_TOOLSET: msvc-14.1 + + - FLAVOR: Visual Studio 2019 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + B2_CXXFLAGS: -permissive- + B2_CXXSTD: 14,17,2a + B2_TOOLSET: msvc-14.2 + + - FLAVOR: Visual Studio 2022 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 + B2_CXXFLAGS: -permissive- + B2_CXXSTD: 14,17,20 + B2_TOOLSET: msvc-14.3 + + - FLAVOR: clang-cl + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + B2_CXXSTD: 11,14,17,latest + B2_TOOLSET: clang-win + + - FLAVOR: cygwin (32-bit) + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + ADDPATH: C:\cygwin\bin; + B2_ADDRESS_MODEL: 32 + B2_CXXSTD: 03,11,14,1z + B2_TOOLSET: gcc + + - FLAVOR: cygwin (64-bit) + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + ADDPATH: C:\cygwin64\bin; + B2_ADDRESS_MODEL: 64 + B2_CXXSTD: 03,11,14,1z + B2_TOOLSET: gcc + + # (Currently) the images up to 2017 use an older Cygwin + # This tests that the library works with more recent versions + - FLAVOR: cygwin (64-bit, latest) + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 + ADDPATH: C:\cygwin64\bin; + B2_ADDRESS_MODEL: 64 + B2_CXXSTD: 03,11,14,1z + B2_TOOLSET: gcc + + - FLAVOR: mingw32 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + B2_ADDRESS_MODEL: 32 + ADDPATH: C:\mingw\bin; + B2_CXXSTD: 03,11,14,1z + B2_TOOLSET: gcc + + - FLAVOR: mingw64 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + ADDPATH: C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin; + B2_ADDRESS_MODEL: 64 + B2_CXXSTD: 03,11,14,17,2a + B2_TOOLSET: gcc + + #- FLAVOR: CodeCov (VS 2019) + # APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + # B2_CXXFLAGS: -permissive- + # B2_CXXSTD: 14 + # B2_TOOLSET: msvc-14.2 + # COVERAGE: true install: - - set BOOST_BRANCH=develop - - if "%APPVEYOR_REPO_BRANCH%" == "master" set BOOST_BRANCH=master - - cd .. - - git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root - - cd boost-root - - git submodule update --init tools/boostdep - - xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\unordered\ - - python tools/boostdep/depinst/depinst.py unordered - - cmd /c bootstrap - - b2 -d0 headers + - git clone --depth 1 https://github.com/boostorg/boost-ci.git C:\boost-ci-cloned + # Copy ci folder if not testing Boost.CI + - if NOT "%APPVEYOR_PROJECT_NAME%" == "boost-ci" xcopy /s /e /q /i /y C:\boost-ci-cloned\ci .\ci + - rmdir /s /q C:\boost-ci-cloned + - ci\appveyor\install.bat build: off -test_script: - - if not "%CXXSTD%" == "" set CXXSTD=cxxstd=%CXXSTD% - - if not "%ADDRMD%" == "" set ADDRMD=address-model=%ADDRMD% - - b2 -j3 libs/unordered/test toolset=%TOOLSET% %CXXSTD% %ADDRMD% variant=debug,release embed-manifest-via=linker +test_script: ci\build.bat + +for: + # CodeCov coverage build + - matrix: + only: [COVERAGE: true] + test_script: [ps: ci\codecov.ps1] From 83fe0249b3f1eb4f59f0b957e6be4fa33f4411bc Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 8 Jun 2022 15:28:04 +0200 Subject: [PATCH 2/3] Allow MinGW32 and Cygwin-latest jobs to fail Needs some more work --- .appveyor.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.appveyor.yml b/.appveyor.yml index 4f32009c..64249cc0 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -90,6 +90,7 @@ environment: B2_ADDRESS_MODEL: 64 B2_CXXSTD: 03,11,14,1z B2_TOOLSET: gcc + MAYFAIL: true - FLAVOR: mingw32 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 @@ -97,6 +98,7 @@ environment: ADDPATH: C:\mingw\bin; B2_CXXSTD: 03,11,14,1z B2_TOOLSET: gcc + MAYFAIL: true - FLAVOR: mingw64 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 From f0013a4d651bc2503fa790ae8fe14490824c8f62 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 8 Jun 2022 21:25:46 +0200 Subject: [PATCH 3/3] Split jobs which take over 1h to complete and timeout See #120 --- .appveyor.yml | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 64249cc0..83f7bce9 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -54,18 +54,36 @@ environment: - FLAVOR: Visual Studio 2019 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 B2_CXXFLAGS: -permissive- - B2_CXXSTD: 14,17,2a + B2_CXXSTD: 14,17 B2_TOOLSET: msvc-14.2 - FLAVOR: Visual Studio 2022 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 B2_CXXFLAGS: -permissive- - B2_CXXSTD: 14,17,20 + B2_CXXSTD: 14,17 B2_TOOLSET: msvc-14.3 - - FLAVOR: clang-cl + # C++20 Jobs split out from above due to build timeout + - FLAVOR: Visual Studio 2019 C++2a APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 - B2_CXXSTD: 11,14,17,latest + B2_CXXFLAGS: -permissive- + B2_CXXSTD: 2a + B2_TOOLSET: msvc-14.2 + + - FLAVOR: Visual Studio 2022 C++20 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 + B2_CXXFLAGS: -permissive- + B2_CXXSTD: 20 + B2_TOOLSET: msvc-14.3 + + - FLAVOR: clang-cl C++11, C++14 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + B2_CXXSTD: 11,14 + B2_TOOLSET: clang-win + # Extra job as compilation takes to long + - FLAVOR: clang-cl C++17, C++latest + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + B2_CXXSTD: 17,latest B2_TOOLSET: clang-win - FLAVOR: cygwin (32-bit)