@@ -147,45 +147,39 @@ 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
165
+ if ${{ toJSON(fromJSON(inputs.build-enable-parallel || 'true')) }}; then
166
+ echo "MAKEFLAGS=-j$(( SYSTEM_CORES + 1))" >> $GITHUB_ENV
167
+ fi
168
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
177
-
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
184
- name : Set up graphical display
191
185
shell : bash
@@ -199,7 +193,7 @@ runs:
199
193
) }}; then
200
194
if ${{ toJSON( runner.os == 'Linux' ) }}; then
201
195
echo "::group::Install xvfb (via apt-get)"
202
- sudo apt-get install xvfb
196
+ sudo apt-get install --no-install-recommends -y xvfb
203
197
mkdir /tmp/runtime-runner && chmod 0700 /tmp/runtime-runner
204
198
echo "XDG_RUNTIME_DIR=/tmp/runtime-runner" >> $GITHUB_ENV
205
199
if ${{ fromJSON(inputs.build-enable-graphical-display || 'false') }}; then
@@ -257,7 +251,7 @@ runs:
257
251
)
258
252
uses : actions/cache@v4
259
253
with :
260
- key : locallib-v2.${{ inputs.perl-deps-cache-version }}-${{ runner.os }}-${{ env.GHA_CACHE_PERL_V_HASH }}
254
+ key : locallib-v2.${{ inputs.perl-deps-cache-version }}-${{ runner.os }}-${{ inputs.perl-version }}-${{ env.GHA_CACHE_PERL_V_HASH }}
261
255
path : ~/perl5
262
256
- name : target-setup-perl (ccache)
263
257
# ccache support on Windows is not well-tested
@@ -284,8 +278,8 @@ runs:
284
278
) }}; then
285
279
echo "::group::setup-perl (setup local::lib)"
286
280
# 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
281
+ $MYPERL -S cpanm -n --local-lib=~/perl5 ExtUtils::MakeMaker || ( cat ~/.cpanm/build.log && false )
282
+ $MYPERL -S cpanm -n --local-lib=~/perl5 local::lib || ( cat ~/.cpanm/build.log && false )
289
283
LOCALLIB_VARS="$($MYPERL -I ~/perl5/lib/perl5 -Mlocal::lib=--shelltype,bourne )"
290
284
eval $( echo "$LOCALLIB_VARS" | $MYPERL -MFile::Spec -pne '
291
285
$_ = "" if /^PATH=/;
@@ -334,8 +328,8 @@ runs:
334
328
) }}; then
335
329
echo "::group::test-release-testing (via cpanm)"
336
330
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
331
+ $BUILD_RUNNER_PREFIX $MYPERL -S cpanm -n --installdeps --with-develop . || ( cat ~/.cpanm/build.log && false )
332
+ $BUILD_RUNNER_PREFIX $MYPERL -S cpanm -n CPAN::Changes || ( cat ~/.cpanm/build.log && false )
339
333
if [ -d xt ]; then
340
334
$TEST_RUNNER_PREFIX $MYPERL -S prove -lr xt
341
335
else
@@ -366,11 +360,14 @@ runs:
366
360
fi
367
361
echo "::endgroup::"
368
362
fi
369
- - name : GNU make for Windows
363
+ - name : set MYMAKE ( Windows)
370
364
shell : bash
371
- if : ${{ matrix.os == 'windows-latest' }}
372
- run : |
373
- choco install --verbose make
365
+ if : runner.os == 'Windows'
366
+ run : echo MYMAKE=gmake >> $GITHUB_ENV
367
+ - name : set MYMAKE (non-Windows)
368
+ shell : bash
369
+ if : runner.os != 'Windows'
370
+ run : echo MYMAKE=make >> $GITHUB_ENV
374
371
- name : target-test (no coverage)
375
372
shell : bash
376
373
env :
@@ -388,7 +385,7 @@ runs:
388
385
if [ -f Makefile.PL ]; then
389
386
( $TEST_RUNNER_PREFIX make && $TEST_RUNNER_PREFIX make test ) || exit 1
390
387
elif [ -f Build.PL ]; then
391
- ( $TEST_RUNNER_PREFIX ./ Build test ) || exit 1
388
+ ( $TEST_RUNNER_PREFIX $MYPERL Build test ) || exit 1
392
389
else
393
390
echo "No file Makefile.PL or Build.PL" >&2
394
391
fi
@@ -409,8 +406,8 @@ runs:
409
406
) }}; then
410
407
echo "::group::test (with coverage)"
411
408
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
409
+ $MYPERL -S cpanm -n Devel::Cover::Report::Coveralls || ( cat ~/.cpanm/build.log && false )
410
+ $MYPERL -S cpanm -n https ://github.com/PDLPorters/Devel--Cover.git@patches || ( cat ~/.cpanm/build.log && false )
414
411
$TEST_RUNNER_PREFIX $MYPERL -S cover -test -relative_only -gcov_chdir -report Coveralls
415
412
echo "::endgroup::"
416
413
fi
0 commit comments