Skip to content

ci: fix coverage workflow #302

ci: fix coverage workflow

ci: fix coverage workflow #302

Workflow file for this run

name: windows
defaults:
#if: "!contains(github.event.head_commit.message, 'skip ci')" # SKIP
run:
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash -e -x {0}
on:
# https://git.luolix.topmunity/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662
workflow_dispatch:
push:
branches:
- master
pull_request:
branches:
- master
env:
PROJ_PFX_TARGET: c4core-
PROJ_PFX_CMAKE: C4CORE_
CMAKE_FLAGS:
NUM_JOBS_BUILD: # 4
jobs:
#----------------------------------------------------------------------------
windows:
name: ${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}}
continue-on-error: true
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
include:
# github retired windows-2016
#- {std: 11, cxx: vs2017, bt: Debug , os: windows-2016, bitlinks: shared64 static32}
#- {std: 11, cxx: vs2017, bt: Release, os: windows-2016, bitlinks: shared64 static32}
#- {std: 14, cxx: vs2017, bt: Debug , os: windows-2016, bitlinks: shared64 static32}
#- {std: 14, cxx: vs2017, bt: Release, os: windows-2016, bitlinks: shared64 static32}
#
- {std: 11, cxx: vs2019, bt: Debug , os: windows-2019, bitlinks: shared64 static32}
- {std: 11, cxx: vs2019, bt: Release, os: windows-2019, bitlinks: shared64 static32}
- {std: 14, cxx: vs2019, bt: Debug , os: windows-2019, bitlinks: shared64 static32}
- {std: 14, cxx: vs2019, bt: Release, os: windows-2019, bitlinks: shared64 static32}
- {std: 17, cxx: vs2019, bt: Debug , os: windows-2019, bitlinks: shared64 static32}
- {std: 17, cxx: vs2019, bt: Release, os: windows-2019, bitlinks: shared64 static32}
#
- {std: 11, cxx: vs2022, bt: Debug , os: windows-2022, bitlinks: shared64 static32}
- {std: 11, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: shared64 static32}
- {std: 14, cxx: vs2022, bt: Debug , os: windows-2022, bitlinks: shared64 static32}
- {std: 14, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: shared64 static32}
- {std: 17, cxx: vs2022, bt: Debug , os: windows-2022, bitlinks: shared64 static32}
- {std: 17, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: shared64 static32}
- {std: 20, cxx: vs2022, bt: Debug , os: windows-2022, bitlinks: shared64 static32}
- {std: 20, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: shared64 static32}
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
steps:
- {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}}
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
- {name: show info, run: source .github/setenv.sh && c4_show_info}
- name: shared64-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test shared64
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
- name: static64-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test static64
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
- name: shared32-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test shared32
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
- name: static32-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test static32
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
#----------------------------------------------------------------------------
windows_noexc:
name: noexc/${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}}
continue-on-error: true
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
include:
- {std: 11, cxx: vs2022, bt: Debug , os: windows-2022, bitlinks: shared64 static32}
- {std: 11, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: shared64 static32}
- {std: 20, cxx: vs2022, bt: Debug , os: windows-2022, bitlinks: shared64 static32}
- {std: 20, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: shared64 static32}
# https://learn.microsoft.com/en-us/cpp/build/reference/eh-exception-handling-model?view=msvc-170
# https://learn.microsoft.com/en-us/cpp/build/reference/gr-enable-run-time-type-information?view=msvc-170
env: {CXXFLAGS: "/EHa- /EHs- /EHc /EHr- /GR- /wd4530", STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
steps:
- {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}}
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
- {name: show info, run: source .github/setenv.sh && c4_show_info}
- name: shared64-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test shared64
- {name: shared64-build, run: source .github/setenv.sh && c4_build_test shared64}
- {name: shared64-run, run: source .github/setenv.sh && c4_run_test shared64}
- {name: shared64-pack, run: source .github/setenv.sh && c4_package shared64}
- name: static64-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test static64
- {name: static64-build, run: source .github/setenv.sh && c4_build_test static64}
- {name: static64-run, run: source .github/setenv.sh && c4_run_test static64}
- {name: static64-pack, run: source .github/setenv.sh && c4_package static64}
- name: shared32-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test shared32
- {name: shared32-build, run: source .github/setenv.sh && c4_build_test shared32}
- {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32}
- {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32}
- name: static32-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test static32
- {name: static32-build, run: source .github/setenv.sh && c4_build_test static32}
- {name: static32-run, run: source .github/setenv.sh && c4_run_test static32}
- {name: static32-pack, run: source .github/setenv.sh && c4_package static32}
#----------------------------------------------------------------------------
windows_clang:
name: clang/${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}}
continue-on-error: true
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
include:
- {std: 11, cxx: vs2022, bt: Debug , os: windows-2022, bitlinks: shared64 static32}
- {std: 11, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: shared64 static32}
- {std: 14, cxx: vs2022, bt: Debug , os: windows-2022, bitlinks: shared64 static32}
- {std: 14, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: shared64 static32}
- {std: 17, cxx: vs2022, bt: Debug , os: windows-2022, bitlinks: shared64 static32}
- {std: 17, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: shared64 static32}
- {std: 20, cxx: vs2022, bt: Debug , os: windows-2022, bitlinks: shared64 static32}
- {std: 20, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: shared64 static32}
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}",
BDIR: "build_${{matrix.arch}}_${{matrix.bt}}_${{matrix.std}}",
IDIR: "install_${{matrix.arch}}_${{matrix.bt}}_${{matrix.std}}"
}
steps:
- {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}}
- {name: show info, run: source .github/setenv.sh && c4_show_info}
- name: configure
run: |
set -x
echo BDIR=$BDIR
echo IDIR=$IDIR
cmake -S . -B $BDIR \
-G "Unix Makefiles" \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_INSTALL_PREFIX=$IDIR \
-DCMAKE_BUILD_TYPE=${{matrix.bt}} \
-DC4_CXX_STANDARD=${{matrix.std}} \
-DCXX_STANDARD=${{matrix.std}} \
-DC4CORE_DEV=ON \
-DC4CORE_BUILD_BENCHMARKS=OFF \
-DC4CORE_SANITIZE=OFF \
-DC4CORE_LINT=OFF \
-DC4CORE_VALGRIND=OFF
- name: build
run: cmake --build $BDIR -j --target c4core-test-build
- name: run
run: cmake --build $BDIR -j --target c4core-test-run
#----------------------------------------------------------------------------
# TODO how to run?
windows_arm:
name: arm/${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}}
continue-on-error: true
if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
include:
- {std: 11, cxx: vs2019, bt: Debug , os: windows-2019, bitlinks: shared64arm static32arm}
- {std: 11, cxx: vs2019, bt: Release, os: windows-2019, bitlinks: shared64arm static32arm}
- {std: 17, cxx: vs2019, bt: Debug , os: windows-2019, bitlinks: shared64arm static32arm}
- {std: 17, cxx: vs2019, bt: Release, os: windows-2019, bitlinks: shared64arm static32arm}
#
# vs2022 has an internal compiler error on iarm32 Release builds:
# https://github.com/biojppm/c4core/runs/5593534734?check_suite_focus=true#step:15:126
- {std: 11, cxx: vs2022, bt: Debug , os: windows-2022, bitlinks: shared64arm static32arm}
- {std: 11, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: shared64arm }
- {std: 20, cxx: vs2022, bt: Debug , os: windows-2022, bitlinks: shared64arm static32arm}
- {std: 20, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: shared64arm }
env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"}
steps:
- {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}}
- {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
- {name: show info, run: source .github/setenv.sh && c4_show_info}
- name: shared64arm-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test shared64arm
- {name: shared64arm-build, run: source .github/setenv.sh && c4_build_test shared64arm}
#- {name: shared64arm-run, run: source .github/setenv.sh && c4_run_test shared64arm}
- {name: shared64arm-pack, run: source .github/setenv.sh && c4_package shared64arm}
- name: static64arm-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test static64arm
- {name: static64arm-build, run: source .github/setenv.sh && c4_build_test static64arm}
#- {name: static64arm-run, run: source .github/setenv.sh && c4_run_test static64arm}
- {name: static64arm-pack, run: source .github/setenv.sh && c4_package static64arm}
- name: shared32arm-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test shared32arm
- {name: shared32arm-build, run: source .github/setenv.sh && c4_build_test shared32arm}
#- {name: shared32arm-run, run: source .github/setenv.sh && c4_run_test shared32arm}
- {name: shared32arm-pack, run: source .github/setenv.sh && c4_package shared32arm}
- name: static32arm-configure---------------------------------------------------
run: source .github/setenv.sh && c4_cfg_test static32arm
- {name: static32arm-build, run: source .github/setenv.sh && c4_build_test static32arm}
#- {name: static32arm-run, run: source .github/setenv.sh && c4_run_test static32arm}
- {name: static32arm-pack, run: source .github/setenv.sh && c4_package static32arm}