1# Copyright 2020 Evan Miller 2# Copyright 2020 Matt Borland 3# Copyright 2021 John Maddock 4# Distributed under the Boost Software License, Version 1.0. 5# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) 6 7name: CI 8on: [ push, pull_request ] 9jobs: 10 ubuntu-focal: 11 runs-on: ubuntu-20.04 12 strategy: 13 fail-fast: false 14 matrix: 15 compiler: [ g++-9, g++-10, clang++-9, clang++-10 ] 16 steps: 17 - uses: actions/checkout@v2 18 with: 19 fetch-depth: '0' 20 - uses: mstachniuk/ci-skip@v1 21 with: 22 commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]' 23 commit-filter-separator: ';' 24 fail-fast: true 25 - name: Set TOOLSET 26 run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV 27 - name: Add repository 28 run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" 29 - name: Install packages 30 run: sudo apt install g++-9 g++-10 clang-9 clang-10 31 - name: Checkout main boost 32 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 33 - name: Update Dependencies 34 run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits 35 working-directory: ../boost-root 36 - name: Copy files 37 run: cp -r $GITHUB_WORKSPACE/* libs/config 38 working-directory: ../boost-root 39 - name: Bootstrap 40 run: ./bootstrap.sh 41 working-directory: ../boost-root 42 - name: Generate headers 43 run: ./b2 headers 44 working-directory: ../boost-root 45 - name: Generate user config 46 run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam' 47 working-directory: ../boost-root 48 - name: Config info 49 run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17,2a 50 working-directory: ../boost-root/libs/config/test 51 - name: Test 52 run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17,2a 53 working-directory: ../boost-root/libs/config/test 54 ubuntu-bionic: 55 runs-on: ubuntu-18.04 56 strategy: 57 fail-fast: false 58 matrix: 59 compiler: [ g++-7, g++-8, clang++-7, clang++-8 ] 60 steps: 61 - uses: actions/checkout@v2 62 with: 63 fetch-depth: '0' 64 - uses: mstachniuk/ci-skip@v1 65 with: 66 commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]' 67 commit-filter-separator: ';' 68 fail-fast: true 69 - name: Set TOOLSET 70 run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV 71 - name: Add repository 72 run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" 73 - name: Install packages 74 run: sudo apt install g++-7 g++-8 clang-7 clang-8 75 - name: Checkout main boost 76 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 77 - name: Update Dependencies 78 run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits 79 working-directory: ../boost-root 80 - name: Copy files 81 run: cp -r $GITHUB_WORKSPACE/* libs/config 82 working-directory: ../boost-root 83 - name: Bootstrap 84 run: ./bootstrap.sh 85 working-directory: ../boost-root 86 - name: Generate headers 87 run: ./b2 headers 88 working-directory: ../boost-root 89 - name: Generate user config 90 run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam' 91 working-directory: ../boost-root 92 - name: Config info install 93 run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17 94 working-directory: ../boost-root/libs/config/test 95 - name: Test 96 run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17 97 working-directory: ../boost-root/libs/config/test 98 macos: 99 runs-on: macos-latest 100 strategy: 101 fail-fast: false 102 matrix: 103 toolset: [ clang ] 104 steps: 105 - uses: actions/checkout@v2 106 with: 107 fetch-depth: '0' 108 - uses: mstachniuk/ci-skip@v1 109 with: 110 commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[linux];[Linux];[LINUX]' 111 commit-filter-separator: ';' 112 fail-fast: true 113 - name: Checkout main boost 114 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 115 - name: Update Dependencies 116 run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits 117 working-directory: ../boost-root 118 - name: Copy files 119 run: cp -r $GITHUB_WORKSPACE/* libs/config 120 working-directory: ../boost-root 121 - name: Bootstrap 122 run: ./bootstrap.sh 123 working-directory: ../boost-root 124 - name: Generate headers 125 run: ./b2 headers 126 working-directory: ../boost-root 127 - name: Config info 128 run: ../../../b2 print_config_info toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a 129 working-directory: ../boost-root/libs/config/test 130 - name: Test 131 run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a 132 working-directory: ../boost-root/libs/config/test 133 windows_msvc_14_0: 134 runs-on: windows-latest 135 defaults: 136 run: 137 shell: cmd 138 strategy: 139 fail-fast: false 140 matrix: 141 toolset: [ msvc-14.0 ] 142 steps: 143 - uses: actions/checkout@v2 144 with: 145 fetch-depth: '0' 146 - uses: mstachniuk/ci-skip@v1 147 with: 148 commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]' 149 commit-filter-separator: ';' 150 fail-fast: true 151 - name: Checkout main boost 152 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 153 - name: Update Dependencies 154 run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits 155 working-directory: ../boost-root 156 - name: Copy files 157 run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config 158 working-directory: ../boost-root 159 - name: Bootstrap 160 run: bootstrap 161 working-directory: ../boost-root 162 - name: Generate headers 163 run: b2 headers 164 working-directory: ../boost-root 165 - name: Config info 166 run: ..\..\..\b2 print_config_info cxxstd=14,17 address-model=64 toolset=msvc-14.0 167 working-directory: ../boost-root/libs/config/test 168 - name: Test 169 run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17 toolset=msvc-14.0 170 working-directory: ../boost-root/libs/config/test 171 windows_msvc_14_2: 172 runs-on: windows-latest 173 defaults: 174 run: 175 shell: cmd 176 strategy: 177 fail-fast: false 178 matrix: 179 toolset: [ msvc-14.2 ] 180 steps: 181 - uses: actions/checkout@v2 182 with: 183 fetch-depth: '0' 184 - uses: mstachniuk/ci-skip@v1 185 with: 186 commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]' 187 commit-filter-separator: ';' 188 fail-fast: true 189 - name: Checkout main boost 190 run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root 191 - name: Update Dependencies 192 run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits 193 working-directory: ../boost-root 194 - name: Copy files 195 run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config 196 working-directory: ../boost-root 197 - name: Bootstrap 198 run: bootstrap 199 working-directory: ../boost-root 200 - name: Generate headers 201 run: b2 headers 202 working-directory: ../boost-root 203 - name: Config info 204 run: ..\..\..\b2 print_config_info cxxstd=14,17,20 address-model=64 toolset=msvc-14.2 205 working-directory: ../boost-root/libs/config/test 206 - name: Test 207 run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17,20 toolset=msvc-14.2 208 working-directory: ../boost-root/libs/config/test 209