diff --git a/.appveyor.yml b/.appveyor.yml index 2f34e41a..83f7bce9 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,139 @@ 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 + B2_TOOLSET: msvc-14.2 + + - FLAVOR: Visual Studio 2022 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 + B2_CXXFLAGS: -permissive- + B2_CXXSTD: 14,17 + B2_TOOLSET: msvc-14.3 + + # 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_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) + 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 + MAYFAIL: true + + - 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 + MAYFAIL: true + + - 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]