99 push :
1010 branches : [ main, develop ]
1111 workflow_dispatch :
12- inputs :
13- build-combinations :
14- description : |
15- A space- or comma-separated list of build combinations to run.
16- Syntax examples:
17- - `gcc/asan clang/tsan` (run only these two)
18- - `all` (run all combinations)
19- - `all -clang/none -clang/valgrind` (run all except specified)
20- - `+clang/none +clang/valgrind` (run default matrix plus specified)
21- Default (if empty): Run all except clang/none and clang/valgrind.
22- required : false
23- default : ' '
2412
2513permissions :
2614 contents : read
2715 pull-requests : read
2816
2917env :
3018 BUILD_TYPE : Release
31- CICOLOR_FORCE : 1
3219
3320jobs :
3421 pre-check :
@@ -40,13 +27,10 @@ jobs:
4027 permissions :
4128 contents : read
4229 packages : read
43-
4430 outputs :
4531 is_act : ${{ steps.detect_act.outputs.is_act }}
4632 should_run : ${{ steps.check.outputs.triggered }}
4733 pr_details : ${{ steps.pr.outputs.result }}
48- sha : ${{ steps.pr.outputs.sha || github.sha }}
49- repo : ${{ steps.pr.outputs.repo || github.repository }}
5034
5135 steps :
5236 - name : Check trigger condition
9579 packages : read
9680 outputs :
9781 has_changes : ${{ steps.filter.outputs.matched }}
98- matrix : ${{ steps.generate.outputs.matrix }}
9982
10083 steps :
10184 - name : Check out source code
@@ -125,12 +108,6 @@ jobs:
125108 echo "::endgroup::"
126109 fi
127110
128- - id : generate
129- uses : ./phlex-src/.github/actions/generate-build-matrix
130- with :
131- user-input : ${{ github.event.inputs.build-combinations }}
132- comment-body : ${{ github.event.comment.body }}
133-
134111 build :
135112 needs : [pre-check, detect-changes]
136113 if : >
@@ -146,9 +123,6 @@ jobs:
146123 github.event.comment.author_association == 'OWNER'
147124 )
148125 runs-on : ubuntu-24.04
149- strategy :
150- fail-fast : false
151- matrix : ${{ fromJSON(needs.generate-matrix.outputs.matrix) }}
152126
153127 container :
154128 image : ghcr.io/framework-r-d/phlex-ci:latest
@@ -163,55 +137,19 @@ jobs:
163137 - name : Setup build environment
164138 uses : Framework-R-D/phlex/.github/actions/setup-build-env@main
165139
166- - name : Announce CMake configuration
167- run : echo "➡️ Configuring CMake..."
168-
169140 - name : Configure CMake
170- id : configure
171141 uses : Framework-R-D/phlex/.github/actions/configure-cmake@main
172142 with :
173143 build-type : ${{ env.BUILD_TYPE }}
174- cpp-compiler : ${{ matrix.compiler == 'gcc' && 'g++' || 'clang++' }}
175- extra-options : |
176- ${{ matrix.sanitizer == 'asan' && '-DPHLEX_ENABLE_ASAN=ON' || '' }}
177- ${{ matrix.sanitizer == 'tsan' && '-DPHLEX_ENABLE_TSAN=ON' || '' }}
178144
179145 - name : Build
180- id : build
181146 uses : Framework-R-D/phlex/.github/actions/build-cmake@main
182147
183- - name : Run tests
184- if : matrix.sanitizer != 'valgrind'
148+ - name : Test
185149 run : |
186150 . /entrypoint.sh
187151 cd $GITHUB_WORKSPACE/phlex-build
188-
189- echo "➡️ Running tests..."
190- echo "::group::Running ctest"
191- if ctest --progress --output-on-failure -j $(nproc); then
192- echo "::endgroup::"
193- echo "✅ All tests passed."
194- else
195- echo "::endgroup::"
196- echo "::error:: Some tests failed."
197- exit 1
198- fi
199-
200- - name : Run Valgrind tests
201- if : matrix.sanitizer == 'valgrind'
202- run : |
203- . /entrypoint.sh
204- cd $GITHUB_WORKSPACE/phlex-build
205-
206- echo "➡️ Running Valgrind tests..."
207- echo "::group::Running ctest -T memcheck"
208- if ctest -T memcheck; then
209- echo "::endgroup::"
210- echo "✅ Valgrind tests passed."
211- else
212- echo "::endgroup::"
213- echo "⚠️ Valgrind tests failed, but the workflow will continue."
214- fi
152+ ctest -j $(nproc)
215153
216154 cmake-build-skipped :
217155 needs : [pre-check, detect-changes]
0 commit comments