Skip to content

build

build #213

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