1515 matrix:
1616 item =: \({:std %1, :cxx "g++-$a(%2)", :bt %3, :bitlinks 'shared64 static32', :img "$a(%4)"})
1717 include: &include1
18- # use gcc13 because it's a lot faster than gcc14
18+ # for canary use gcc13 because it's a lot faster than gcc14
1919 - ! item(11 13 'Debug' '22.04')
2020 - ! item(11 13 'Release' '22.04')
2121 - ! item(20 13 'Debug' '22.04')
5353 env:: load('share/env.yaml') + {'CXXFLAGS' '-fno-exceptions -fno-rtti'}
5454 steps:: checkout-manual + install-cxx + run-steps
5555
56+ #----------------------------------------------------------------------------
57+ dbg:
58+ :: setup-job('gcc' 'dbg')
59+ name: dbg/${{matrix.name}}/${{matrix.gcc}}
60+ :: runs-on-docker-c4core('${{matrix.img}}')
61+ needs: canary
62+ strategy:
63+ fail-fast: false
64+ matrix:
65+ include:
66+ - {name: 64bit_g , std: 11, gcc: 13 , bt: Debug , img: 22.04, cxxflags: }
67+ - {name: 64bit_O1, std: 11, gcc: 13 , bt: Release, img: 22.04, cxxflags: -O1 -DNDEBUG}
68+ - {name: 64bit_O2, std: 11, gcc: 13 , bt: Release, img: 22.04, cxxflags: -O2 -DNDEBUG}
69+ - {name: 64bit_O3, std: 11, gcc: 13 , bt: Release, img: 22.04, cxxflags: -O3 -DNDEBUG}
70+ - {name: 32bit_g , std: 11, gcc: 13 , bt: Debug , img: 22.04, cxxflags: -m32 }
71+ - {name: 32bit_O1, std: 11, gcc: 13 , bt: Release, img: 22.04, cxxflags: -m32 -O1 -DNDEBUG}
72+ - {name: 32bit_O2, std: 11, gcc: 13 , bt: Release, img: 22.04, cxxflags: -m32 -O2 -DNDEBUG}
73+ - {name: 32bit_O3, std: 11, gcc: 13 , bt: Release, img: 22.04, cxxflags: -m32 -O3 -DNDEBUG}
74+ env:: load('share/env.yaml') + {'CXX_' '${{matrix.gcc}}'}
75+ steps:
76+ - :: checkout-action-docker
77+ - run: c4core-install g++-${{matrix.gcc}}
78+ - name: show info
79+ run: source .github/setenv.sh && c4_show_info
80+ - name: configure (issue \#${{matrix.issue}})
81+ run: |
82+ cmake -S . -B build \
83+ -DCMAKE_CXX_COMPILER=g++-${{matrix.gcc}} \
84+ -DCMAKE_C_COMPILER=gcc-${{matrix.gcc}} \
85+ -DCMAKE_BUILD_TYPE=Release \
86+ -DCMAKE_CXX_FLAGS_DEBUG="${{matrix.cxxflags}}" \
87+ -DCMAKE_CXX_FLAGS_RELEASE="${{matrix.cxxflags}}" \
88+ -DRYML_BUILD_TESTS=ON \
89+ -DRYML_DBG=ON
90+ - name: build (issue \#${{matrix.issue}})
91+ run: cmake --build build --target ryml-test-build --parallel --verbose
92+ - name: run (issue \#${{matrix.issue}})
93+ run: |
94+ source .github/setenv.sh
95+ export CTEST_PARALLEL_LEVEL=`_c4getnumcores`
96+ cmake --build build --target ryml-test-run
97+
5698 #----------------------------------------------------------------------------
5799 misbuild:
58100 :: setup-job('gcc' 'misbuild')
89131 cmake --build build --target ryml-test-run
90132
91133 #----------------------------------------------------------------------------
92- # with valgrind too slow: only latest gcc
134+ # with valgrind: it's too slow; only latest gcc
93135
94136 strategy-latest-gcc =::
95137 fail-fast: false
@@ -104,6 +146,7 @@ jobs:
104146 - {std: 11, cxx: 14, bits: 64, vg: ON , img: 22.04}
105147 - {std: 11, cxx: 14, bits: 32, vg: ON , img: 22.04}
106148
149+ # split these two valgrind jobs to make them faster
107150 vg1:
108151 :: setup-job('gcc' 'vg1')
109152 name: extended/${{matrix.cxx}}/${{matrix.bits}}bit/c++${{matrix.std}}/vg/D_O1_O2
@@ -118,7 +161,6 @@ jobs:
118161 - :: run-gcc-manual-with-flags('Debug' '-m${{matrix.bits}}')
119162 - :: run-gcc-manual-with-flags('Release' '-O1 -DNDEBUG -m${{matrix.bits}}')
120163 - :: run-gcc-manual-with-flags('Release' '-O2 -DNDEBUG -m${{matrix.bits}}')
121-
122164 vg2:
123165 :: setup-job('gcc' 'vg2')
124166 name: extended/${{matrix.cxx}}/${{matrix.bits}}bit/c++${{matrix.std}}/vg/O3_Os
0 commit comments