mirror of
https://github.com/biojppm/rapidyaml.git
synced 2026-01-18 21:41:18 +01:00
- ensure gcc and clang are tested with several optimization levels (-O3,-O2,-O1,-Os). This reveals a number of problems in gcc11,12,13 (but not 14), which should be addressed next. - use continue-on-error: false to ensure the final workflow result is red when any of its jobs fails
1081 lines
36 KiB
YAML
1081 lines
36 KiB
YAML
# DO NOT EDIT - GENERATED FROM .github/workflows/gcc.ys
|
|
|
|
name: gcc
|
|
defaults:
|
|
run:
|
|
shell: bash -e -x {0}
|
|
'on':
|
|
workflow_dispatch: null
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
env:
|
|
PROJ_PFX_TARGET: ryml-
|
|
PROJ_PFX_CMAKE: RYML_
|
|
CMAKE_FLAGS: -DRYML_TEST_SUITE=ON
|
|
NUM_JOBS_BUILD: null
|
|
jobs:
|
|
canary:
|
|
if: always()
|
|
continue-on-error: false
|
|
name: canary/${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}}
|
|
runs-on: ubuntu-24.04
|
|
container: ghcr.io/biojppm/c4core/ubuntu${{matrix.img}}:latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- std: 11
|
|
cxx: g++-13
|
|
bt: Debug
|
|
bitlinks: shared64 static32
|
|
img: '22.04'
|
|
- std: 11
|
|
cxx: g++-13
|
|
bt: Release
|
|
bitlinks: shared64 static32
|
|
img: '22.04'
|
|
- std: 20
|
|
cxx: g++-13
|
|
bt: Debug
|
|
bitlinks: shared64 static32
|
|
img: '22.04'
|
|
- std: 20
|
|
cxx: g++-13
|
|
bt: Release
|
|
bitlinks: shared64 static32
|
|
img: '22.04'
|
|
- std: 11
|
|
cxx: g++-5
|
|
bt: Debug
|
|
bitlinks: shared64 static32
|
|
img: '18.04'
|
|
- std: 11
|
|
cxx: g++-5
|
|
bt: Release
|
|
bitlinks: shared64 static32
|
|
img: '18.04'
|
|
- std: 11
|
|
cxx: g++-4.8
|
|
bt: Debug
|
|
bitlinks: shared64 static32
|
|
img: '18.04'
|
|
- std: 11
|
|
cxx: g++-4.8
|
|
bt: Release
|
|
bitlinks: shared64 static32
|
|
img: '18.04'
|
|
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 (manually)
|
|
run: |
|
|
set -xeo pipefail
|
|
env | sort
|
|
echo GITHUB_SERVER_URL=$GITHUB_SERVER_URL
|
|
echo GITHUB_REPOSITORY=$GITHUB_REPOSITORY
|
|
echo GITHUB_REF=$GITHUB_REF
|
|
echo GITHUB_REF_NAME=$GITHUB_REF_NAME
|
|
echo GITHUB_HEAD_REF=$GITHUB_HEAD_REF
|
|
repo=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY
|
|
# check the branch
|
|
# https://stackoverflow.com/questions/58033366
|
|
branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}
|
|
echo branch=$branch
|
|
# does the branch exist in the repo?
|
|
if [ -z "$(git ls-remote $repo | grep $branch)" ] ; then
|
|
echo "branch $branch does not exist on $repo"
|
|
# refs/pull/485/merge -> pull/485/head
|
|
branch=`echo ${GITHUB_REF#refs/} | sed -e 's:merge:head:g'`
|
|
echo "... falling back to $branch"
|
|
# does the fallback exist?
|
|
if [ -z "(git ls-remote $repo | grep $branch)" ] ; then
|
|
echo "branch $branch does not exist on $repo"
|
|
exit 1
|
|
else
|
|
echo "branch $branch exists on $repo"
|
|
localbranch=$(echo $branch | sed -e 's@[/:]@_@g')
|
|
branch=$branch:$localbranch
|
|
echo "naming locally as $branch"
|
|
fi
|
|
fi
|
|
# finally, create the local repo
|
|
git init -q .
|
|
# needed for running in the docker image.
|
|
# see https://github.com/actions/checkout/issues/1169
|
|
git config --system --add safe.directory '*'
|
|
# finally, do it!
|
|
git remote add origin $repo
|
|
git fetch origin $branch
|
|
git reset --hard FETCH_HEAD
|
|
git submodule update --init --recursive
|
|
# show the log
|
|
git log --graph --date=relative --date-order --color=always \
|
|
--pretty='%C(yellow)%h %C(cyan)%cd %Cblue%aN%C(auto)%d %Creset%s' \
|
|
| head -30 \
|
|
|| echo -n
|
|
# show the last commit
|
|
git log --name-status HEAD^..HEAD
|
|
- run: c4core-install ${{matrix.cxx}}
|
|
- 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: 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
|
|
- 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
|
|
tabtokens:
|
|
if: always()
|
|
continue-on-error: false
|
|
name: tabtokens/${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}}
|
|
runs-on: ubuntu-24.04
|
|
container: ghcr.io/biojppm/c4core/ubuntu${{matrix.img}}:latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- std: 11
|
|
cxx: g++-13
|
|
bt: Debug
|
|
bitlinks: shared64 static32
|
|
img: '22.04'
|
|
- std: 11
|
|
cxx: g++-13
|
|
bt: Release
|
|
bitlinks: shared64 static32
|
|
img: '22.04'
|
|
- std: 20
|
|
cxx: g++-13
|
|
bt: Debug
|
|
bitlinks: shared64 static32
|
|
img: '22.04'
|
|
- std: 20
|
|
cxx: g++-13
|
|
bt: Release
|
|
bitlinks: shared64 static32
|
|
img: '22.04'
|
|
- std: 11
|
|
cxx: g++-5
|
|
bt: Debug
|
|
bitlinks: shared64 static32
|
|
img: '18.04'
|
|
- std: 11
|
|
cxx: g++-5
|
|
bt: Release
|
|
bitlinks: shared64 static32
|
|
img: '18.04'
|
|
- std: 11
|
|
cxx: g++-4.8
|
|
bt: Debug
|
|
bitlinks: shared64 static32
|
|
img: '18.04'
|
|
- std: 11
|
|
cxx: g++-4.8
|
|
bt: Release
|
|
bitlinks: shared64 static32
|
|
img: '18.04'
|
|
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}}
|
|
CMAKE_FLAGS: -DRYML_WITH_TAB_TOKENS=ON
|
|
steps:
|
|
- name: checkout (manually)
|
|
run: |
|
|
set -xeo pipefail
|
|
env | sort
|
|
echo GITHUB_SERVER_URL=$GITHUB_SERVER_URL
|
|
echo GITHUB_REPOSITORY=$GITHUB_REPOSITORY
|
|
echo GITHUB_REF=$GITHUB_REF
|
|
echo GITHUB_REF_NAME=$GITHUB_REF_NAME
|
|
echo GITHUB_HEAD_REF=$GITHUB_HEAD_REF
|
|
repo=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY
|
|
# check the branch
|
|
# https://stackoverflow.com/questions/58033366
|
|
branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}
|
|
echo branch=$branch
|
|
# does the branch exist in the repo?
|
|
if [ -z "$(git ls-remote $repo | grep $branch)" ] ; then
|
|
echo "branch $branch does not exist on $repo"
|
|
# refs/pull/485/merge -> pull/485/head
|
|
branch=`echo ${GITHUB_REF#refs/} | sed -e 's:merge:head:g'`
|
|
echo "... falling back to $branch"
|
|
# does the fallback exist?
|
|
if [ -z "(git ls-remote $repo | grep $branch)" ] ; then
|
|
echo "branch $branch does not exist on $repo"
|
|
exit 1
|
|
else
|
|
echo "branch $branch exists on $repo"
|
|
localbranch=$(echo $branch | sed -e 's@[/:]@_@g')
|
|
branch=$branch:$localbranch
|
|
echo "naming locally as $branch"
|
|
fi
|
|
fi
|
|
# finally, create the local repo
|
|
git init -q .
|
|
# needed for running in the docker image.
|
|
# see https://github.com/actions/checkout/issues/1169
|
|
git config --system --add safe.directory '*'
|
|
# finally, do it!
|
|
git remote add origin $repo
|
|
git fetch origin $branch
|
|
git reset --hard FETCH_HEAD
|
|
git submodule update --init --recursive
|
|
# show the log
|
|
git log --graph --date=relative --date-order --color=always \
|
|
--pretty='%C(yellow)%h %C(cyan)%cd %Cblue%aN%C(auto)%d %Creset%s' \
|
|
| head -30 \
|
|
|| echo -n
|
|
# show the last commit
|
|
git log --name-status HEAD^..HEAD
|
|
- run: c4core-install ${{matrix.cxx}}
|
|
- 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: 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
|
|
- 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
|
|
noexceptions:
|
|
if: always()
|
|
continue-on-error: false
|
|
name: noexceptions/${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}}
|
|
runs-on: ubuntu-24.04
|
|
container: ghcr.io/biojppm/c4core/ubuntu${{matrix.img}}:latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- std: 11
|
|
cxx: g++-13
|
|
bt: Debug
|
|
bitlinks: shared64 static32
|
|
img: '22.04'
|
|
- std: 11
|
|
cxx: g++-13
|
|
bt: Release
|
|
bitlinks: shared64 static32
|
|
img: '22.04'
|
|
- std: 20
|
|
cxx: g++-13
|
|
bt: Debug
|
|
bitlinks: shared64 static32
|
|
img: '22.04'
|
|
- std: 20
|
|
cxx: g++-13
|
|
bt: Release
|
|
bitlinks: shared64 static32
|
|
img: '22.04'
|
|
- std: 11
|
|
cxx: g++-5
|
|
bt: Debug
|
|
bitlinks: shared64 static32
|
|
img: '18.04'
|
|
- std: 11
|
|
cxx: g++-5
|
|
bt: Release
|
|
bitlinks: shared64 static32
|
|
img: '18.04'
|
|
- std: 11
|
|
cxx: g++-4.8
|
|
bt: Debug
|
|
bitlinks: shared64 static32
|
|
img: '18.04'
|
|
- std: 11
|
|
cxx: g++-4.8
|
|
bt: Release
|
|
bitlinks: shared64 static32
|
|
img: '18.04'
|
|
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}}
|
|
CXXFLAGS: -fno-exceptions -fno-rtti
|
|
steps:
|
|
- name: checkout (manually)
|
|
run: |
|
|
set -xeo pipefail
|
|
env | sort
|
|
echo GITHUB_SERVER_URL=$GITHUB_SERVER_URL
|
|
echo GITHUB_REPOSITORY=$GITHUB_REPOSITORY
|
|
echo GITHUB_REF=$GITHUB_REF
|
|
echo GITHUB_REF_NAME=$GITHUB_REF_NAME
|
|
echo GITHUB_HEAD_REF=$GITHUB_HEAD_REF
|
|
repo=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY
|
|
# check the branch
|
|
# https://stackoverflow.com/questions/58033366
|
|
branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}
|
|
echo branch=$branch
|
|
# does the branch exist in the repo?
|
|
if [ -z "$(git ls-remote $repo | grep $branch)" ] ; then
|
|
echo "branch $branch does not exist on $repo"
|
|
# refs/pull/485/merge -> pull/485/head
|
|
branch=`echo ${GITHUB_REF#refs/} | sed -e 's:merge:head:g'`
|
|
echo "... falling back to $branch"
|
|
# does the fallback exist?
|
|
if [ -z "(git ls-remote $repo | grep $branch)" ] ; then
|
|
echo "branch $branch does not exist on $repo"
|
|
exit 1
|
|
else
|
|
echo "branch $branch exists on $repo"
|
|
localbranch=$(echo $branch | sed -e 's@[/:]@_@g')
|
|
branch=$branch:$localbranch
|
|
echo "naming locally as $branch"
|
|
fi
|
|
fi
|
|
# finally, create the local repo
|
|
git init -q .
|
|
# needed for running in the docker image.
|
|
# see https://github.com/actions/checkout/issues/1169
|
|
git config --system --add safe.directory '*'
|
|
# finally, do it!
|
|
git remote add origin $repo
|
|
git fetch origin $branch
|
|
git reset --hard FETCH_HEAD
|
|
git submodule update --init --recursive
|
|
# show the log
|
|
git log --graph --date=relative --date-order --color=always \
|
|
--pretty='%C(yellow)%h %C(cyan)%cd %Cblue%aN%C(auto)%d %Creset%s' \
|
|
| head -30 \
|
|
|| echo -n
|
|
# show the last commit
|
|
git log --name-status HEAD^..HEAD
|
|
- run: c4core-install ${{matrix.cxx}}
|
|
- 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: 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
|
|
- 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
|
|
misbuild:
|
|
if: always()
|
|
continue-on-error: false
|
|
name: misbuild#${{matrix.issue}}/gcc${{matrix.gcc}}/c++${{matrix.std}}
|
|
runs-on: ubuntu-24.04
|
|
container: ghcr.io/biojppm/c4core/ubuntu${{matrix.img}}:latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- issue: 440
|
|
std: 11
|
|
gcc: 12
|
|
bt: Release
|
|
img: 22.04
|
|
cxxflags: -O2 -DNDEBUG -g
|
|
- issue: 486
|
|
std: 11
|
|
gcc: 11
|
|
bt: Release
|
|
img: 22.04
|
|
cxxflags: -O3 -DNDEBUG
|
|
env:
|
|
STD: ${{matrix.std}}
|
|
CXX_: ${{matrix.gcc}}
|
|
BT: ${{matrix.bt}}
|
|
BITLINKS: ${{matrix.bitlinks}}
|
|
VG: ${{matrix.vg}}
|
|
SAN: ${{matrix.san}}
|
|
LINT: ${{matrix.lint}}
|
|
OS: ${{matrix.os}}
|
|
steps:
|
|
- name: checkout (action + docker)
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
fetch-depth: 0
|
|
- run: git config --system --add safe.directory '*'
|
|
- run: c4core-install g++-${{matrix.gcc}}
|
|
- name: show info
|
|
run: source .github/setenv.sh && c4_show_info
|
|
- name: configure (issue \#${{matrix.issue}})
|
|
run: |
|
|
cmake -S . -B build \
|
|
-DCMAKE_CXX_COMPILER=g++-${{matrix.gcc}} \
|
|
-DCMAKE_C_COMPILER=gcc-${{matrix.gcc}} \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_CXX_FLAGS_RELEASE="${{matrix.cxxflags}}" \
|
|
-DRYML_BUILD_TESTS=ON \
|
|
-DRYML_DBG=OFF
|
|
- name: build (issue \#${{matrix.issue}})
|
|
run: cmake --build build --target ryml-test-build --parallel --verbose
|
|
- name: run (issue \#${{matrix.issue}})
|
|
run: cmake --build build --target ryml-test-run
|
|
extended:
|
|
if: always()
|
|
continue-on-error: false
|
|
name: extended/${{matrix.cxx}}/${{matrix.bits}}bit/c++${{matrix.std}}/vg${{matrix.vg}}
|
|
runs-on: ubuntu-24.04
|
|
container: ghcr.io/biojppm/c4core/ubuntu${{matrix.img}}:latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- std: 20
|
|
cxx: 14
|
|
bits: 64
|
|
vg: 'ON'
|
|
img: 22.04
|
|
- std: 20
|
|
cxx: 14
|
|
bits: 32
|
|
vg: 'ON'
|
|
img: 22.04
|
|
- std: 17
|
|
cxx: 14
|
|
bits: 64
|
|
vg: 'ON'
|
|
img: 22.04
|
|
- std: 17
|
|
cxx: 14
|
|
bits: 32
|
|
vg: 'ON'
|
|
img: 22.04
|
|
- std: 14
|
|
cxx: 14
|
|
bits: 64
|
|
vg: 'ON'
|
|
img: 22.04
|
|
- std: 14
|
|
cxx: 14
|
|
bits: 32
|
|
vg: 'ON'
|
|
img: 22.04
|
|
- std: 11
|
|
cxx: 14
|
|
bits: 64
|
|
vg: 'ON'
|
|
img: 22.04
|
|
- std: 11
|
|
cxx: 14
|
|
bits: 32
|
|
vg: 'ON'
|
|
img: 22.04
|
|
- std: 11
|
|
cxx: 13
|
|
bits: 64
|
|
vg: 'OFF'
|
|
img: 22.04
|
|
- std: 11
|
|
cxx: 13
|
|
bits: 32
|
|
vg: 'OFF'
|
|
img: 22.04
|
|
- std: 11
|
|
cxx: 12
|
|
bits: 64
|
|
vg: 'OFF'
|
|
img: 22.04
|
|
- std: 11
|
|
cxx: 12
|
|
bits: 32
|
|
vg: 'OFF'
|
|
img: 22.04
|
|
- std: 11
|
|
cxx: 11
|
|
bits: 64
|
|
vg: 'OFF'
|
|
img: 22.04
|
|
- std: 11
|
|
cxx: 11
|
|
bits: 32
|
|
vg: 'OFF'
|
|
img: 22.04
|
|
- std: 11
|
|
cxx: 10
|
|
bits: 64
|
|
vg: 'OFF'
|
|
img: 22.04
|
|
- std: 11
|
|
cxx: 10
|
|
bits: 32
|
|
vg: 'OFF'
|
|
img: 22.04
|
|
- std: 11
|
|
cxx: 9
|
|
bits: 64
|
|
vg: 'OFF'
|
|
img: 22.04
|
|
- std: 11
|
|
cxx: 9
|
|
bits: 32
|
|
vg: 'OFF'
|
|
img: 22.04
|
|
- std: 11
|
|
cxx: 8
|
|
bits: 64
|
|
vg: 'OFF'
|
|
img: 18.04
|
|
- std: 11
|
|
cxx: 8
|
|
bits: 32
|
|
vg: 'OFF'
|
|
img: 18.04
|
|
- std: 11
|
|
cxx: 7
|
|
bits: 64
|
|
vg: 'OFF'
|
|
img: 18.04
|
|
- std: 11
|
|
cxx: 7
|
|
bits: 32
|
|
vg: 'OFF'
|
|
img: 18.04
|
|
- std: 11
|
|
cxx: 6
|
|
bits: 64
|
|
vg: 'OFF'
|
|
img: 18.04
|
|
- std: 11
|
|
cxx: 6
|
|
bits: 32
|
|
vg: 'OFF'
|
|
img: 18.04
|
|
- std: 11
|
|
cxx: 5
|
|
bits: 64
|
|
vg: 'OFF'
|
|
img: 18.04
|
|
- std: 11
|
|
cxx: 5
|
|
bits: 32
|
|
vg: 'OFF'
|
|
img: 18.04
|
|
- std: 11
|
|
cxx: 4.9
|
|
bits: 64
|
|
vg: 'OFF'
|
|
img: 18.04
|
|
- std: 11
|
|
cxx: 4.9
|
|
bits: 32
|
|
vg: 'OFF'
|
|
img: 18.04
|
|
- std: 11
|
|
cxx: 4.8
|
|
bits: 64
|
|
vg: 'OFF'
|
|
img: 18.04
|
|
- std: 11
|
|
cxx: 4.8
|
|
bits: 32
|
|
vg: 'OFF'
|
|
img: 18.04
|
|
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 (manually)
|
|
run: |
|
|
set -xeo pipefail
|
|
env | sort
|
|
echo GITHUB_SERVER_URL=$GITHUB_SERVER_URL
|
|
echo GITHUB_REPOSITORY=$GITHUB_REPOSITORY
|
|
echo GITHUB_REF=$GITHUB_REF
|
|
echo GITHUB_REF_NAME=$GITHUB_REF_NAME
|
|
echo GITHUB_HEAD_REF=$GITHUB_HEAD_REF
|
|
repo=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY
|
|
# check the branch
|
|
# https://stackoverflow.com/questions/58033366
|
|
branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}
|
|
echo branch=$branch
|
|
# does the branch exist in the repo?
|
|
if [ -z "$(git ls-remote $repo | grep $branch)" ] ; then
|
|
echo "branch $branch does not exist on $repo"
|
|
# refs/pull/485/merge -> pull/485/head
|
|
branch=`echo ${GITHUB_REF#refs/} | sed -e 's:merge:head:g'`
|
|
echo "... falling back to $branch"
|
|
# does the fallback exist?
|
|
if [ -z "(git ls-remote $repo | grep $branch)" ] ; then
|
|
echo "branch $branch does not exist on $repo"
|
|
exit 1
|
|
else
|
|
echo "branch $branch exists on $repo"
|
|
localbranch=$(echo $branch | sed -e 's@[/:]@_@g')
|
|
branch=$branch:$localbranch
|
|
echo "naming locally as $branch"
|
|
fi
|
|
fi
|
|
# finally, create the local repo
|
|
git init -q .
|
|
# needed for running in the docker image.
|
|
# see https://github.com/actions/checkout/issues/1169
|
|
git config --system --add safe.directory '*'
|
|
# finally, do it!
|
|
git remote add origin $repo
|
|
git fetch origin $branch
|
|
git reset --hard FETCH_HEAD
|
|
git submodule update --init --recursive
|
|
# show the log
|
|
git log --graph --date=relative --date-order --color=always \
|
|
--pretty='%C(yellow)%h %C(cyan)%cd %Cblue%aN%C(auto)%d %Creset%s' \
|
|
| head -30 \
|
|
|| echo -n
|
|
# show the last commit
|
|
git log --name-status HEAD^..HEAD
|
|
- name: install
|
|
run: c4core-install g++-${{matrix.cxx}}
|
|
- name: '---------------------------------------------------------'
|
|
run: |
|
|
echo "Debug ::: -m${{matrix.bits}}"
|
|
- name: 'configure Debug ::: -m${{matrix.bits}}'
|
|
run: |
|
|
rm -rf build/Debug
|
|
export C4_EXTERN_DIR=`pwd`/build/extern
|
|
cmake -S . -B build/Debug \
|
|
-DCMAKE_CXX_COMPILER=g++-${{matrix.cxx}} \
|
|
-DCMAKE_C_COMPILER=gcc-${{matrix.cxx}} \
|
|
-DCMAKE_BUILD_TYPE=Debug \
|
|
-DCMAKE_CXX_FLAGS_DEBUG="-m${{matrix.bits}}" \
|
|
-DC4_CXX_STANDARD=${{matrix.std}} \
|
|
-DRYML_CXX_STANDARD=${{matrix.std}} \
|
|
-DRYML_BUILD_TESTS=ON \
|
|
-DRYML_VALGRIND=${{matrix.vg}} \
|
|
-DRYML_DEV=ON \
|
|
-DRYML_BUILD_BENCHMARKS=OFF \
|
|
-DRYML_DBG=OFF
|
|
- name: 'build Debug ::: -m${{matrix.bits}}'
|
|
run: |
|
|
cmake --build build/Debug --target ryml-test-build --parallel --verbose
|
|
- name: 'run Debug ::: -m${{matrix.bits}}'
|
|
run: |
|
|
cmake --build build/Debug --target ryml-test-run
|
|
- name: '---------------------------------------------------------'
|
|
run: |
|
|
echo "Release ::: -O1 -DNDEBUG -m${{matrix.bits}}"
|
|
- name: 'configure Release ::: -O1 -DNDEBUG -m${{matrix.bits}}'
|
|
run: |
|
|
rm -rf build/Release
|
|
export C4_EXTERN_DIR=`pwd`/build/extern
|
|
cmake -S . -B build/Release \
|
|
-DCMAKE_CXX_COMPILER=g++-${{matrix.cxx}} \
|
|
-DCMAKE_C_COMPILER=gcc-${{matrix.cxx}} \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_CXX_FLAGS_RELEASE="-O1 -DNDEBUG -m${{matrix.bits}}" \
|
|
-DC4_CXX_STANDARD=${{matrix.std}} \
|
|
-DRYML_CXX_STANDARD=${{matrix.std}} \
|
|
-DRYML_BUILD_TESTS=ON \
|
|
-DRYML_VALGRIND=${{matrix.vg}} \
|
|
-DRYML_DEV=ON \
|
|
-DRYML_BUILD_BENCHMARKS=OFF \
|
|
-DRYML_DBG=OFF
|
|
- name: 'build Release ::: -O1 -DNDEBUG -m${{matrix.bits}}'
|
|
run: |
|
|
cmake --build build/Release --target ryml-test-build --parallel --verbose
|
|
- name: 'run Release ::: -O1 -DNDEBUG -m${{matrix.bits}}'
|
|
run: |
|
|
cmake --build build/Release --target ryml-test-run
|
|
- name: '---------------------------------------------------------'
|
|
run: |
|
|
echo "Release ::: -O2 -DNDEBUG -m${{matrix.bits}}"
|
|
- name: 'configure Release ::: -O2 -DNDEBUG -m${{matrix.bits}}'
|
|
run: |
|
|
rm -rf build/Release
|
|
export C4_EXTERN_DIR=`pwd`/build/extern
|
|
cmake -S . -B build/Release \
|
|
-DCMAKE_CXX_COMPILER=g++-${{matrix.cxx}} \
|
|
-DCMAKE_C_COMPILER=gcc-${{matrix.cxx}} \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_CXX_FLAGS_RELEASE="-O2 -DNDEBUG -m${{matrix.bits}}" \
|
|
-DC4_CXX_STANDARD=${{matrix.std}} \
|
|
-DRYML_CXX_STANDARD=${{matrix.std}} \
|
|
-DRYML_BUILD_TESTS=ON \
|
|
-DRYML_VALGRIND=${{matrix.vg}} \
|
|
-DRYML_DEV=ON \
|
|
-DRYML_BUILD_BENCHMARKS=OFF \
|
|
-DRYML_DBG=OFF
|
|
- name: 'build Release ::: -O2 -DNDEBUG -m${{matrix.bits}}'
|
|
run: |
|
|
cmake --build build/Release --target ryml-test-build --parallel --verbose
|
|
- name: 'run Release ::: -O2 -DNDEBUG -m${{matrix.bits}}'
|
|
run: |
|
|
cmake --build build/Release --target ryml-test-run
|
|
- name: '---------------------------------------------------------'
|
|
run: |
|
|
echo "Release ::: -O3 -DNDEBUG -m${{matrix.bits}}"
|
|
- name: 'configure Release ::: -O3 -DNDEBUG -m${{matrix.bits}}'
|
|
run: |
|
|
rm -rf build/Release
|
|
export C4_EXTERN_DIR=`pwd`/build/extern
|
|
cmake -S . -B build/Release \
|
|
-DCMAKE_CXX_COMPILER=g++-${{matrix.cxx}} \
|
|
-DCMAKE_C_COMPILER=gcc-${{matrix.cxx}} \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_CXX_FLAGS_RELEASE="-O3 -DNDEBUG -m${{matrix.bits}}" \
|
|
-DC4_CXX_STANDARD=${{matrix.std}} \
|
|
-DRYML_CXX_STANDARD=${{matrix.std}} \
|
|
-DRYML_BUILD_TESTS=ON \
|
|
-DRYML_VALGRIND=${{matrix.vg}} \
|
|
-DRYML_DEV=ON \
|
|
-DRYML_BUILD_BENCHMARKS=OFF \
|
|
-DRYML_DBG=OFF
|
|
- name: 'build Release ::: -O3 -DNDEBUG -m${{matrix.bits}}'
|
|
run: |
|
|
cmake --build build/Release --target ryml-test-build --parallel --verbose
|
|
- name: 'run Release ::: -O3 -DNDEBUG -m${{matrix.bits}}'
|
|
run: |
|
|
cmake --build build/Release --target ryml-test-run
|
|
- name: '---------------------------------------------------------'
|
|
run: |
|
|
echo "Release ::: -Os -DNDEBUG -m${{matrix.bits}}"
|
|
- name: 'configure Release ::: -Os -DNDEBUG -m${{matrix.bits}}'
|
|
run: |
|
|
rm -rf build/Release
|
|
export C4_EXTERN_DIR=`pwd`/build/extern
|
|
cmake -S . -B build/Release \
|
|
-DCMAKE_CXX_COMPILER=g++-${{matrix.cxx}} \
|
|
-DCMAKE_C_COMPILER=gcc-${{matrix.cxx}} \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_CXX_FLAGS_RELEASE="-Os -DNDEBUG -m${{matrix.bits}}" \
|
|
-DC4_CXX_STANDARD=${{matrix.std}} \
|
|
-DRYML_CXX_STANDARD=${{matrix.std}} \
|
|
-DRYML_BUILD_TESTS=ON \
|
|
-DRYML_VALGRIND=${{matrix.vg}} \
|
|
-DRYML_DEV=ON \
|
|
-DRYML_BUILD_BENCHMARKS=OFF \
|
|
-DRYML_DBG=OFF
|
|
- name: 'build Release ::: -Os -DNDEBUG -m${{matrix.bits}}'
|
|
run: |
|
|
cmake --build build/Release --target ryml-test-build --parallel --verbose
|
|
- name: 'run Release ::: -Os -DNDEBUG -m${{matrix.bits}}'
|
|
run: |
|
|
cmake --build build/Release --target ryml-test-run
|
|
gccsan:
|
|
if: always()
|
|
continue-on-error: false
|
|
name: gccsan/${{matrix.bt}}/${{matrix.cxx}}/c++${{matrix.std}}
|
|
runs-on: ubuntu-24.04
|
|
container: ghcr.io/biojppm/c4core/ubuntu22.04:latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- std: 11
|
|
cxx: g++-14
|
|
bt: asan
|
|
bitlinks: static64
|
|
- std: 14
|
|
cxx: g++-14
|
|
bt: asan
|
|
bitlinks: static64
|
|
- std: 17
|
|
cxx: g++-14
|
|
bt: asan
|
|
bitlinks: static64
|
|
- std: 20
|
|
cxx: g++-14
|
|
bt: asan
|
|
bitlinks: static64
|
|
- std: 11
|
|
cxx: g++-14
|
|
bt: lsan
|
|
bitlinks: static64
|
|
- std: 14
|
|
cxx: g++-14
|
|
bt: lsan
|
|
bitlinks: static64
|
|
- std: 17
|
|
cxx: g++-14
|
|
bt: lsan
|
|
bitlinks: static64
|
|
- std: 20
|
|
cxx: g++-14
|
|
bt: lsan
|
|
bitlinks: static64
|
|
- std: 11
|
|
cxx: g++-14
|
|
bt: tsan
|
|
bitlinks: static64
|
|
- std: 14
|
|
cxx: g++-14
|
|
bt: tsan
|
|
bitlinks: static64
|
|
- std: 17
|
|
cxx: g++-14
|
|
bt: tsan
|
|
bitlinks: static64
|
|
- std: 20
|
|
cxx: g++-14
|
|
bt: tsan
|
|
bitlinks: static64
|
|
- std: 11
|
|
cxx: g++-14
|
|
bt: ubsan
|
|
bitlinks: static64
|
|
- std: 14
|
|
cxx: g++-14
|
|
bt: ubsan
|
|
bitlinks: static64
|
|
- std: 17
|
|
cxx: g++-14
|
|
bt: ubsan
|
|
bitlinks: static64
|
|
- std: 20
|
|
cxx: g++-14
|
|
bt: ubsan
|
|
bitlinks: static64
|
|
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 (action + docker)
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
fetch-depth: 0
|
|
- run: git config --system --add safe.directory '*'
|
|
- run: c4core-install ${{matrix.cxx}}
|
|
- 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: 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
|
|
- 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
|
|
arm:
|
|
if: always()
|
|
continue-on-error: false
|
|
runs-on: ubuntu-24.04
|
|
container: ghcr.io/biojppm/c4core/ubuntu18.04:latest
|
|
name: arm/c++${{matrix.std}}/${{matrix.bt}}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- std: 11
|
|
bt: Debug
|
|
cxx: arm-linux-gnueabihf-gcc
|
|
toolchain: ext/c4core/cmake/Toolchain-Arm-ubuntu.cmake
|
|
- std: 11
|
|
bt: Release
|
|
cxx: arm-linux-gnueabihf-gcc
|
|
toolchain: ext/c4core/cmake/Toolchain-Arm-ubuntu.cmake
|
|
- std: 14
|
|
bt: Debug
|
|
cxx: arm-linux-gnueabihf-gcc
|
|
toolchain: ext/c4core/cmake/Toolchain-Arm-ubuntu.cmake
|
|
- std: 14
|
|
bt: Release
|
|
cxx: arm-linux-gnueabihf-gcc
|
|
toolchain: ext/c4core/cmake/Toolchain-Arm-ubuntu.cmake
|
|
- std: 17
|
|
bt: Debug
|
|
cxx: arm-linux-gnueabihf-gcc
|
|
toolchain: ext/c4core/cmake/Toolchain-Arm-ubuntu.cmake
|
|
- std: 17
|
|
bt: Release
|
|
cxx: arm-linux-gnueabihf-gcc
|
|
toolchain: ext/c4core/cmake/Toolchain-Arm-ubuntu.cmake
|
|
env:
|
|
TOOLCHAIN: ${{matrix.toolchain}}
|
|
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 (manually)
|
|
run: |
|
|
set -xeo pipefail
|
|
env | sort
|
|
echo GITHUB_SERVER_URL=$GITHUB_SERVER_URL
|
|
echo GITHUB_REPOSITORY=$GITHUB_REPOSITORY
|
|
echo GITHUB_REF=$GITHUB_REF
|
|
echo GITHUB_REF_NAME=$GITHUB_REF_NAME
|
|
echo GITHUB_HEAD_REF=$GITHUB_HEAD_REF
|
|
repo=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY
|
|
# check the branch
|
|
# https://stackoverflow.com/questions/58033366
|
|
branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}
|
|
echo branch=$branch
|
|
# does the branch exist in the repo?
|
|
if [ -z "$(git ls-remote $repo | grep $branch)" ] ; then
|
|
echo "branch $branch does not exist on $repo"
|
|
# refs/pull/485/merge -> pull/485/head
|
|
branch=`echo ${GITHUB_REF#refs/} | sed -e 's:merge:head:g'`
|
|
echo "... falling back to $branch"
|
|
# does the fallback exist?
|
|
if [ -z "(git ls-remote $repo | grep $branch)" ] ; then
|
|
echo "branch $branch does not exist on $repo"
|
|
exit 1
|
|
else
|
|
echo "branch $branch exists on $repo"
|
|
localbranch=$(echo $branch | sed -e 's@[/:]@_@g')
|
|
branch=$branch:$localbranch
|
|
echo "naming locally as $branch"
|
|
fi
|
|
fi
|
|
# finally, create the local repo
|
|
git init -q .
|
|
# needed for running in the docker image.
|
|
# see https://github.com/actions/checkout/issues/1169
|
|
git config --system --add safe.directory '*'
|
|
# finally, do it!
|
|
git remote add origin $repo
|
|
git fetch origin $branch
|
|
git reset --hard FETCH_HEAD
|
|
git submodule update --init --recursive
|
|
# show the log
|
|
git log --graph --date=relative --date-order --color=always \
|
|
--pretty='%C(yellow)%h %C(cyan)%cd %Cblue%aN%C(auto)%d %Creset%s' \
|
|
| head -30 \
|
|
|| echo -n
|
|
# show the last commit
|
|
git log --name-status HEAD^..HEAD
|
|
- name: install gcc-arm-linux-gnueabihf
|
|
run: c4core-install arm-linux-gnueabihf; c4core-install qemu
|
|
- name: show info
|
|
run: source .github/setenv.sh && c4_show_info
|
|
- name: configure---------------------------------------------------
|
|
run: source .github/setenv.sh && c4_cfg_test arm
|
|
- name: build
|
|
run: source .github/setenv.sh && c4_build_test arm
|
|
- name: run
|
|
run: source .github/setenv.sh && c4_run_test arm
|
|
- name: pack
|
|
run: source .github/setenv.sh && c4_package arm
|