@@ -147,70 +147,63 @@ runs:
147
147
steps :
148
148
# Target: none
149
149
# Shared step to do initial set up
150
- - name : initial setup
150
+ - name : set SYSTEM_CORES (Linux)
151
+ shell : bash
152
+ if : runner.os == 'Linux'
153
+ run : echo SYSTEM_CORES="$(grep -c ^processor /proc/cpuinfo 2>/dev/null || echo 1 )" >> $GITHUB_ENV
154
+ - name : set SYSTEM_CORES (macOS)
155
+ shell : bash
156
+ if : runner.os == 'macOS'
157
+ run : echo SYSTEM_CORES="$(sysctl -n hw.ncpu || echo 1)" >> $GITHUB_ENV
158
+ - name : set SYSTEM_CORES (Windows)
159
+ shell : bash
160
+ if : runner.os == 'Windows'
161
+ run : echo SYSTEM_CORES=$( powershell -NoProfile -Command "& { Get-WmiObject Win32_Processor | Select-Object -Property NumberOfCores }" | perl -0777 -ne 'print $1, "\n" while /(\d+)/g' ) >> $GITHUB_ENV
162
+ - name : set MAKEFLAGS
151
163
shell : bash
152
164
run : |
153
- echo "::group::initial setup"
154
- export SYSTEM_CORES=1;
155
- if ${{ toJSON( runner.os == 'Linux' ) }}; then
156
- export SYSTEM_CORES="$(grep -c ^processor /proc/cpuinfo 2>/dev/null || echo 1 )"
157
- elif ${{ toJSON( runner.os == 'macOS' ) }}; then
158
- export SYSTEM_CORES="$(sysctl -n hw.ncpu || echo 1)"
159
- elif ${{ toJSON( runner.os == 'Windows' ) }}; then
160
- export SYSTEM_CORES=$( powershell -NoProfile -Command "& { Get-WmiObject Win32_Processor | Select-Object -Property NumberOfCores }" | perl -0777 -ne 'print $1, "\n" while /(\d+)/g' );
161
- fi
162
- echo "SYSTEM_CORES=$SYSTEM_CORES" >> $GITHUB_ENV
163
- if ${{ toJSON(
164
- fromJSON(inputs.build-enable-parallel || 'true')
165
- ) }}; then
166
- echo "MAKEFLAGS=-j$(( SYSTEM_CORES + 1))" >> $GITHUB_ENV
167
- fi
168
-
169
- #if ${{ toJSON( runner.os == 'Windows' ) }}; then
170
- # # Set TEMP to full path instead of 8.3 short filenames.
171
- # # See <https://github.com/actions/virtual-environments/issues/712>.
172
- # # $USERPROFILE\\AppData\\Local\\Temp
173
- # [ -d 'C:\tmp' ] || mkdir 'C:\tmp';
174
- # echo 'TMP=C:\tmp' >> $GITHUB_ENV
175
- # echo 'TEMP=C:\tmp' >> $GITHUB_ENV
176
- #fi
165
+ if ${{ toJSON(fromJSON(inputs.build-enable-parallel || 'true')) }}; then
166
+ echo "MAKEFLAGS=-j$(( SYSTEM_CORES + 1))" >> $GITHUB_ENV
167
+ fi
177
168
178
- # This is needed for Clang 12 due to
179
- # <https://github.com/Perl/perl5/issues/18780>.
180
- if ${{ toJSON( runner.os == 'macOS' ) }}; then
181
- PATCH_EUMM_DIR=$HOME/build_aux
182
- [ -d $PATCH_EUMM_DIR ] || mkdir $PATCH_EUMM_DIR
183
- if [ ! -f $PATCH_EUMM_DIR/clang12_no_warnings.pm ]; then
184
- echo 'package clang12_no_warnings; use ExtUtils::MakeMaker::Config; $Config{ccflags} = join " ", $Config{ccflags}, "-Wno-compound-token-split-by-macro"; 1;' > $PATCH_EUMM_DIR/clang12_no_warnings.pm
185
- echo "PERL5OPT=${PERL5OPT:+${PERL5OPT} }-I$PATCH_EUMM_DIR -Mclang12_no_warnings" >> $GITHUB_ENV
186
- fi
187
- fi
188
- echo "::endgroup::"
169
+ - name : setup Clang noise suppression (MacOS)
170
+ shell : bash
171
+ if : runner.os == 'macOS'
172
+ run : |
173
+ # This is needed for Clang 12 due to
174
+ # <https://github.com/Perl/perl5/issues/18780>.
175
+ echo "::group::setup Clang noise suppression (MacOS)"
176
+ PATCH_EUMM_DIR=$HOME/build_aux
177
+ [ -d $PATCH_EUMM_DIR ] || mkdir $PATCH_EUMM_DIR
178
+ if [ ! -f $PATCH_EUMM_DIR/clang12_no_warnings.pm ]; then
179
+ echo 'package clang12_no_warnings; use ExtUtils::MakeMaker::Config; $Config{ccflags} = join " ", $Config{ccflags}, "-Wno-compound-token-split-by-macro"; 1;' > $PATCH_EUMM_DIR/clang12_no_warnings.pm
180
+ echo "PERL5OPT=${PERL5OPT:+${PERL5OPT} }-I$PATCH_EUMM_DIR -Mclang12_no_warnings" >> $GITHUB_ENV
181
+ fi
182
+ echo "::endgroup::"
189
183
# Shared step for setting up graphical display.
190
- - name : Set up graphical display
184
+ - name : Set up graphical display (via apt-get)
191
185
shell : bash
186
+ if : runner.os == 'Linux'
192
187
run : |
193
- if ${{ toJSON(
194
- (
195
- fromJSON(inputs.build-enable-graphical-display || 'false')
196
- ||
197
- fromJSON(inputs.test-enable-graphical-display || 'false')
198
- )
199
- ) }}; then
200
- if ${{ toJSON( runner.os == 'Linux' ) }}; then
201
- echo "::group::Install xvfb (via apt-get)"
202
- sudo apt-get install xvfb
203
- mkdir /tmp/runtime-runner && chmod 0700 /tmp/runtime-runner
204
- echo "XDG_RUNTIME_DIR=/tmp/runtime-runner" >> $GITHUB_ENV
205
- if ${{ fromJSON(inputs.build-enable-graphical-display || 'false') }}; then
206
- echo "BUILD_RUNNER_PREFIX=xvfb-run -a" >> $GITHUB_ENV
207
- fi
208
- if ${{ fromJSON(inputs.test-enable-graphical-display || 'false') }}; then
209
- echo "TEST_RUNNER_PREFIX=xvfb-run -a" >> $GITHUB_ENV
210
- fi
211
- echo "::endgroup::"
212
- fi
188
+ if ${{ toJSON(
189
+ (
190
+ fromJSON(inputs.build-enable-graphical-display || 'false')
191
+ ||
192
+ fromJSON(inputs.test-enable-graphical-display || 'false')
193
+ )
194
+ ) }}; then
195
+ echo "::group::Install xvfb (via apt-get)"
196
+ sudo apt-get install --no-install-recommends -y xvfb
197
+ mkdir /tmp/runtime-runner && chmod 0700 /tmp/runtime-runner
198
+ echo "XDG_RUNTIME_DIR=/tmp/runtime-runner" >> $GITHUB_ENV
199
+ if ${{ fromJSON(inputs.build-enable-graphical-display || 'false') }}; then
200
+ echo "BUILD_RUNNER_PREFIX=xvfb-run -a" >> $GITHUB_ENV
201
+ fi
202
+ if ${{ fromJSON(inputs.test-enable-graphical-display || 'false') }}; then
203
+ echo "TEST_RUNNER_PREFIX=xvfb-run -a" >> $GITHUB_ENV
213
204
fi
205
+ echo "::endgroup::"
206
+ fi
214
207
# Target: target-setup-perl
215
208
- name : target-setup-perl (actions-setup-perl)
216
209
shell : bash
@@ -257,7 +250,7 @@ runs:
257
250
)
258
251
uses : actions/cache@v4
259
252
with :
260
- key : locallib-v2.${{ inputs.perl-deps-cache-version }}-${{ runner.os }}-${{ env.GHA_CACHE_PERL_V_HASH }}
253
+ key : locallib-v2.${{ inputs.perl-deps-cache-version }}-${{ runner.os }}-${{ inputs.perl-version }}-${{ env.GHA_CACHE_PERL_V_HASH }}
261
254
path : ~/perl5
262
255
- name : target-setup-perl (ccache)
263
256
# ccache support on Windows is not well-tested
@@ -284,8 +277,8 @@ runs:
284
277
) }}; then
285
278
echo "::group::setup-perl (setup local::lib)"
286
279
# older Perls need this upgrade
287
- $MYPERL -S cpanm -n --local-lib=~/perl5 ExtUtils::MakeMaker
288
- $MYPERL -S cpanm -n --local-lib=~/perl5 local::lib
280
+ $MYPERL -S cpanm -n --local-lib=~/perl5 ExtUtils::MakeMaker || ( cat ~/.cpanm/build.log && false )
281
+ $MYPERL -S cpanm -n --local-lib=~/perl5 local::lib || ( cat ~/.cpanm/build.log && false )
289
282
LOCALLIB_VARS="$($MYPERL -I ~/perl5/lib/perl5 -Mlocal::lib=--shelltype,bourne )"
290
283
eval $( echo "$LOCALLIB_VARS" | $MYPERL -MFile::Spec -pne '
291
284
$_ = "" if /^PATH=/;
@@ -334,8 +327,8 @@ runs:
334
327
) }}; then
335
328
echo "::group::test-release-testing (via cpanm)"
336
329
cd ${{ inputs.path }}
337
- $BUILD_RUNNER_PREFIX $MYPERL -S cpanm -n --installdeps --with-develop . || cat ~/.cpanm/build.log
338
- $BUILD_RUNNER_PREFIX $MYPERL -S cpanm -n CPAN::Changes || cat ~/.cpanm/build.log
330
+ $BUILD_RUNNER_PREFIX $MYPERL -S cpanm -n --installdeps --with-develop . || ( cat ~/.cpanm/build.log && false )
331
+ $BUILD_RUNNER_PREFIX $MYPERL -S cpanm -n CPAN::Changes || ( cat ~/.cpanm/build.log && false )
339
332
if [ -d xt ]; then
340
333
$TEST_RUNNER_PREFIX $MYPERL -S prove -lr xt
341
334
else
@@ -366,11 +359,14 @@ runs:
366
359
fi
367
360
echo "::endgroup::"
368
361
fi
369
- - name : GNU make for Windows
362
+ - name : set MYMAKE ( Windows)
370
363
shell : bash
371
- if : ${{ matrix.os == 'windows-latest' }}
372
- run : |
373
- choco install --verbose make
364
+ if : runner.os == 'Windows'
365
+ run : echo MYMAKE=gmake >> $GITHUB_ENV
366
+ - name : set MYMAKE (non-Windows)
367
+ shell : bash
368
+ if : runner.os != 'Windows'
369
+ run : echo MYMAKE=make >> $GITHUB_ENV
374
370
- name : target-test (no coverage)
375
371
shell : bash
376
372
env :
@@ -388,7 +384,7 @@ runs:
388
384
if [ -f Makefile.PL ]; then
389
385
( $TEST_RUNNER_PREFIX make && $TEST_RUNNER_PREFIX make test ) || exit 1
390
386
elif [ -f Build.PL ]; then
391
- ( $TEST_RUNNER_PREFIX ./ Build test ) || exit 1
387
+ ( $TEST_RUNNER_PREFIX $MYPERL Build test ) || exit 1
392
388
else
393
389
echo "No file Makefile.PL or Build.PL" >&2
394
390
fi
@@ -409,8 +405,8 @@ runs:
409
405
) }}; then
410
406
echo "::group::test (with coverage)"
411
407
cd ${{ inputs.path }}
412
- $MYPERL -S cpanm -n Devel::Cover::Report::Coveralls || cat ~/.cpanm/build.log
413
- $MYPERL -S cpanm -n git ://github.com/PDLPorters/Devel--Cover.git@patches || cat ~/.cpanm/build.log
408
+ $MYPERL -S cpanm -n Devel::Cover::Report::Coveralls || ( cat ~/.cpanm/build.log && false )
409
+ $MYPERL -S cpanm -n https ://github.com/PDLPorters/Devel--Cover.git@patches || ( cat ~/.cpanm/build.log && false )
414
410
$TEST_RUNNER_PREFIX $MYPERL -S cover -test -relative_only -gcov_chdir -report Coveralls
415
411
echo "::endgroup::"
416
412
fi
0 commit comments