1name: CI 2 3on: 4 pull_request: 5 push: 6 branches: 7 - master 8 - develop 9 - feature/** 10 11env: 12 UBSAN_OPTIONS: print_stacktrace=1 13 14jobs: 15 posix: 16 strategy: 17 fail-fast: false 18 matrix: 19 include: 20 - toolset: gcc-4.7 21 cxxstd: "03,11" 22 os: ubuntu-16.04 23 install: g++-4.7 24 - toolset: gcc-4.8 25 cxxstd: "03,11" 26 os: ubuntu-16.04 27 install: g++-4.8 28 - toolset: gcc-4.9 29 cxxstd: "03,11" 30 os: ubuntu-16.04 31 install: g++-4.9 32 - toolset: gcc-5 33 cxxstd: "03,11,14,1z" 34 os: ubuntu-16.04 35 - toolset: gcc-6 36 cxxstd: "03,11,14,1z" 37 os: ubuntu-16.04 38 install: g++-6 39 - toolset: gcc-7 40 cxxstd: "03,11,14,17" 41 os: ubuntu-18.04 42 - toolset: gcc-8 43 cxxstd: "03,11,14,17,2a" 44 os: ubuntu-18.04 45 - toolset: gcc-9 46 cxxstd: "03,11,14,17,2a" 47 os: ubuntu-18.04 48 - toolset: gcc-10 49 cxxstd: "03,11,14,17,2a" 50 os: ubuntu-18.04 51 - toolset: clang 52 compiler: clang++-3.5 53 cxxstd: "03,11,14" 54 os: ubuntu-16.04 55 install: clang-3.5 56 - toolset: clang 57 compiler: clang++-3.6 58 cxxstd: "03,11,14" 59 os: ubuntu-16.04 60 install: clang-3.6 61 - toolset: clang 62 compiler: clang++-3.7 63 cxxstd: "03,11,14" 64 os: ubuntu-16.04 65 install: clang-3.7 66 - toolset: clang 67 compiler: clang++-3.8 68 cxxstd: "03,11,14" 69 os: ubuntu-16.04 70 install: clang-3.8 71 - toolset: clang 72 compiler: clang++-3.9 73 cxxstd: "03,11,14" 74 os: ubuntu-16.04 75 install: clang-3.9 76 - toolset: clang 77 compiler: clang++-4.0 78 cxxstd: "03,11,14" 79 os: ubuntu-16.04 80 install: clang-4.0 81 - toolset: clang 82 compiler: clang++-5.0 83 cxxstd: "03,11,14,1z" 84 os: ubuntu-16.04 85 install: clang-5.0 86 - toolset: clang 87 compiler: clang++-6.0 88 cxxstd: "03,11,14,17" 89 os: ubuntu-18.04 90 - toolset: clang 91 compiler: clang++-7 92 cxxstd: "03,11,14,17" 93 os: ubuntu-18.04 94 install: clang-7 95 - toolset: clang 96 compiler: clang++-8 97 cxxstd: "03,11,14,17,2a" 98 os: ubuntu-20.04 99 - toolset: clang 100 compiler: clang++-9 101 cxxstd: "03,11,14,17,2a" 102 os: ubuntu-20.04 103 - toolset: clang 104 compiler: clang++-10 105 cxxstd: "03,11,14,17,2a" 106 os: ubuntu-20.04 107 - toolset: clang 108 cxxstd: "03,11,14,17,2a" 109 os: macos-10.15 110 111 runs-on: ${{matrix.os}} 112 113 steps: 114 - uses: actions/checkout@v2 115 116 - name: Install packages 117 if: matrix.install 118 run: sudo apt install ${{matrix.install}} 119 120 - name: Setup Boost 121 run: | 122 echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY 123 LIBRARY=${GITHUB_REPOSITORY#*/} 124 echo LIBRARY: $LIBRARY 125 echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV 126 echo GITHUB_BASE_REF: $GITHUB_BASE_REF 127 echo GITHUB_REF: $GITHUB_REF 128 REF=${GITHUB_BASE_REF:-$GITHUB_REF} 129 REF=${REF#refs/heads/} 130 echo REF: $REF 131 BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true 132 echo BOOST_BRANCH: $BOOST_BRANCH 133 cd .. 134 git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root 135 cd boost-root 136 cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY 137 git submodule update --init tools/boostdep 138 python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY 139 ./bootstrap.sh 140 ./b2 -d0 headers 141 142 - name: Create user-config.jam 143 if: matrix.compiler 144 run: | 145 echo "using ${{matrix.toolset}} : : ${{matrix.compiler}} ;" > ~/user-config.jam 146 147 - name: Run tests 148 run: | 149 cd ../boost-root 150 ./b2 -j3 libs/$LIBRARY/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} variant=debug,release 151 152 windows: 153 strategy: 154 fail-fast: false 155 matrix: 156 include: 157 - toolset: msvc-14.1 158 cxxstd: "14,17,latest" 159 addrmd: 32,64 160 os: windows-2016 161 - toolset: msvc-14.2 162 cxxstd: "14,17,latest" 163 addrmd: 32,64 164 os: windows-2019 165 - toolset: gcc 166 cxxstd: "03,11,14,17,2a" 167 addrmd: 64 168 os: windows-2019 169 170 runs-on: ${{matrix.os}} 171 172 steps: 173 - uses: actions/checkout@v2 174 175 - name: Setup Boost 176 shell: cmd 177 run: | 178 echo GITHUB_REPOSITORY: %GITHUB_REPOSITORY% 179 for /f %%i in ("%GITHUB_REPOSITORY%") do set LIBRARY=%%~nxi 180 echo LIBRARY: %LIBRARY% 181 echo LIBRARY=%LIBRARY%>>%GITHUB_ENV% 182 echo GITHUB_BASE_REF: %GITHUB_BASE_REF% 183 echo GITHUB_REF: %GITHUB_REF% 184 if "%GITHUB_BASE_REF%" == "" set GITHUB_BASE_REF=%GITHUB_REF% 185 set BOOST_BRANCH=develop 186 for /f %%i in ("%GITHUB_BASE_REF%") do if "%%~nxi" == "master" set BOOST_BRANCH=master 187 echo BOOST_BRANCH: %BOOST_BRANCH% 188 cd .. 189 git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root 190 cd boost-root 191 xcopy /s /e /q %GITHUB_WORKSPACE% libs\%LIBRARY%\ 192 git submodule update --init tools/boostdep 193 python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" %LIBRARY% 194 cmd /c bootstrap 195 b2 -d0 headers 196 197 - name: Run tests 198 shell: cmd 199 run: | 200 cd ../boost-root 201 b2 -j3 libs/%LIBRARY%/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model=${{matrix.addrmd}} variant=debug,release 202