build #213
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- '*' | |
pull_request: | |
branches: | |
- '*' | |
schedule: | |
- cron: '16 0 * * 3,6' # <https://crontab.guru/#16_0_*_*_3,6> - "At 00:16 on Wednesday and Saturday." | |
jobs: | |
Linux: | |
# if: false # Disable this platform temporarily | |
runs-on: ubuntu-${{ matrix.os-version }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- job-name: 'clang10' | |
os-version: '20.04' | |
c-compiler: 'clang-10' | |
cxx-compiler: 'clang++-10' | |
generator: '"Unix Makefiles"' | |
- job-name: 'clang11' | |
os-version: '20.04' | |
c-compiler: 'clang-11' | |
cxx-compiler: 'clang++-11' | |
generator: '"Unix Makefiles"' | |
- job-name: 'clang12' | |
os-version: '20.04' | |
c-compiler: 'clang-12' | |
cxx-compiler: 'clang++-12' | |
generator: '"Unix Makefiles"' | |
- job-name: 'clang14' | |
os-version: '22.04' | |
c-compiler: 'clang-14' | |
cxx-compiler: 'clang++-14' | |
generator: '"Unix Makefiles" "-DCMAKE_CXX_FLAGS=-stdlib=libc++ -std=c++20"' | |
- job-name: 'clang15' | |
os-version: '22.04' | |
c-compiler: 'clang-15' | |
cxx-compiler: 'clang++-15' | |
generator: '"Unix Makefiles"' | |
- job-name: 'gcc9' | |
os-version: '20.04' | |
c-compiler: 'gcc-9' | |
cxx-compiler: 'g++-9' | |
generator: '"Unix Makefiles"' | |
- job-name: 'gcc10' | |
os-version: '20.04' | |
c-compiler: 'gcc-10' | |
cxx-compiler: 'g++-10' | |
generator: '"Unix Makefiles"' | |
# See #4 | |
# - job-name: 'gcc10 unity' | |
# os-version: '20.04' | |
# c-compiler: 'gcc-10' | |
# cxx-compiler: 'g++-10' | |
# generator: '"Unix Makefiles" -DCMAKE_UNITY_BUILD=yes' | |
# - job-name: 'gcc10 ninja' | |
# os-version: '20.04' | |
# c-compiler: 'gcc-10' | |
# cxx-compiler: 'g++-10' | |
# generator: '"Ninja"' | |
# - job-name: 'gcc10 ninja-unity' | |
# os-version: '20.04' | |
# c-compiler: 'gcc-10' | |
# cxx-compiler: 'g++-10' | |
# generator: '"Ninja" -DCMAKE_UNITY_BUILD=yes' | |
name: Linux ${{ matrix.job-name }} | |
env: | |
CC: ${{ matrix.c-compiler }} | |
CXX: ${{ matrix.cxx-compiler }} | |
steps: | |
- uses: actions/checkout@master | |
- uses: seanmiddleditch/gha-setup-ninja@v3 | |
if: contains(matrix.generator, 'Ninja') | |
- name: set up python | |
uses: actions/setup-python@v1 | |
with: | |
python-version: '3.11' | |
- uses: ./.github/actions/setup-conan | |
- name: adjust conan profile to use new ABI for gcc (see issue #1) | |
if: contains(matrix.job-name, 'gcc') | |
run: conan profile update settings.compiler.libcxx=libstdc++11 default | |
- name: Build cmake_invoking_conan | |
run: | | |
cd cmake_invoking_conan | |
./build.sh | |
- name: Build conan_cmake | |
run: | | |
cd conan_cmake | |
./build.sh | |
- name: Build conan_cmake_find_package | |
run: | | |
cd conan_cmake_find_package | |
./build.sh | |
- name: Build fetch_content_approvaltests | |
run: | | |
cd fetch_content_approvaltests | |
./build.sh | |
- name: Build fetch_content_approvaltests_catch2 | |
run: | | |
cd fetch_content_approvaltests_catch2 | |
./build.sh | |
- name: Build dev_approvals_fetch_content | |
run: | | |
git clone https://github.com/approvals/ApprovalTests.cpp.git | |
cd dev_approvals_fetch_content | |
./build.sh | |
- name: install boost | |
run: | | |
sudo apt-get update -qq | |
sudo apt-get install -y libboost-all-dev | |
- name: Build dev_approvals | |
run: | | |
./ApprovalTests.cpp/scripts/clone_dependencies.sh | |
cd dev_approvals | |
./build.sh | |
macOS: | |
# if: false # Disable this platform temporarily | |
runs-on: macos-${{ matrix.os-version }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# probably don't add xcode9.4 - which was tested in Travis | |
- job-name: xcode-10.3 | |
os-version: '10.15' | |
xcode-version: '10.3' | |
generator: '"Unix Makefiles"' | |
- job-name: xcode-11.7 | |
os-version: '10.15' | |
xcode-version: '11.7' | |
generator: '"Unix Makefiles"' | |
- job-name: xcode-12.4 | |
os-version: '10.15' | |
xcode-version: '12.4' | |
generator: '"Unix Makefiles"' | |
# See #4 | |
# - job-name: xcode-12.4-ninja | |
# xcode-version: '12.4' | |
# os-version: '10.15' | |
# generator: '"Ninja"' | |
name: macOS ${{ matrix.job-name }} | |
env: | |
HOMEBREW_NO_ANALYTICS: 1 | |
HOMEBREW_NO_AUTO_UPDATE: 1 | |
HOMEBREW_NO_INSTALL_CLEANUP: 1 | |
DEVELOPER_DIR: '/Applications/Xcode_${{ matrix.xcode-version }}.app/Contents/Developer' | |
steps: | |
- uses: actions/checkout@master | |
- uses: seanmiddleditch/gha-setup-ninja@v3 | |
if: contains(matrix.generator, 'Ninja') | |
- name: set up python | |
uses: actions/setup-python@v1 | |
with: | |
python-version: '3.11' | |
- uses: ./.github/actions/setup-conan | |
- name: Build cmake_invoking_conan | |
run: | | |
cd cmake_invoking_conan | |
./build.sh | |
- name: Build conan_cmake | |
run: | | |
cd conan_cmake | |
./build.sh | |
- name: Build conan_cmake_find_package | |
run: | | |
cd conan_cmake_find_package | |
./build.sh | |
- name: Build fetch_content_approvaltests | |
run: | | |
cd fetch_content_approvaltests | |
./build.sh | |
- name: Build fetch_content_approvaltests_catch2 | |
run: | | |
cd fetch_content_approvaltests_catch2 | |
./build.sh | |
- name: Build dev_approvals_fetch_content | |
run: | | |
git clone https://github.com/approvals/ApprovalTests.cpp.git | |
cd dev_approvals_fetch_content | |
./build.sh | |
- name: install boost | |
run: | | |
brew install boost | |
- name: Build dev_approvals | |
run: | | |
./ApprovalTests.cpp/scripts/clone_dependencies.sh | |
cd dev_approvals | |
./build.sh | |
Windows: | |
# if: false # Disable windows builds, due to path length errors | |
runs-on: windows-${{ matrix.os-version }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- job-name: VS-2017 | |
os-version: '2016' | |
generator: '"Visual Studio 15 2017"' | |
- job-name: VS-2019 | |
os-version: '2019' | |
generator: '"Visual Studio 16 2019"' | |
# See #4 | |
# - job-name: VS-2019 (clangcl) | |
# os-version: '2019' | |
# generator: '"Visual Studio 16 2019" -T "clangcl"' | |
name: Windows ${{ matrix.job-name }} | |
# Need to check out in to shorter directory, to avoid 260-char path-length limit | |
steps: | |
- uses: actions/checkout@master | |
- name: set up python | |
uses: actions/setup-python@v1 | |
with: | |
python-version: '3.11' | |
- uses: ./.github/actions/setup-conan | |
- name: Build vcpkg_cmake | |
shell: bash | |
run: | | |
cd vcpkg_cmake | |
./build.sh | |
- name: Build cmake_invoking_conan | |
shell: bash | |
run: | | |
cd cmake_invoking_conan | |
./build.sh | |
- name: Build conan_cmake | |
shell: bash | |
run: | | |
cd conan_cmake | |
./build.sh | |
- name: Build conan_cmake_find_package | |
shell: bash | |
run: | | |
cd conan_cmake_find_package | |
./build.sh | |
- name: Build fetch_content_approvaltests | |
shell: bash | |
run: | | |
cd fetch_content_approvaltests | |
./build.sh | |
- name: Build fetch_content_approvaltests_catch2 | |
shell: bash | |
run: | | |
cd fetch_content_approvaltests_catch2 | |
./build.sh | |
- name: Build dev_approvals_fetch_content | |
shell: bash | |
run: | | |
git clone https://github.com/approvals/ApprovalTests.cpp.git | |
cd dev_approvals_fetch_content | |
./build.sh | |
- name: install boost | |
run: | | |
conan install boost/1.72.0@ -o boost:header_only=True -g deploy --install-folder ${env:GITHUB_WORKSPACE} | |
${boostroot} = "${env:GITHUB_WORKSPACE}" | |
echo "BOOST_ROOT=${boostroot}" >> ${env:GITHUB_ENV} | |
- name: Build dev_approvals | |
shell: bash | |
run: | | |
./ApprovalTests.cpp/scripts/clone_dependencies.sh | |
cd dev_approvals | |
./build.sh |