Skip to content

Commit 8410464

Browse files
committed
ci-dist update from PDLPorters
1 parent f7a60a8 commit 8410464

File tree

1 file changed

+65
-69
lines changed

1 file changed

+65
-69
lines changed

github-actions/ci-dist/action.yml

Lines changed: 65 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -147,70 +147,63 @@ runs:
147147
steps:
148148
# Target: none
149149
# 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
151163
shell: bash
152164
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
177168
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::"
189183
# Shared step for setting up graphical display.
190-
- name: Set up graphical display
184+
- name: Set up graphical display (via apt-get)
191185
shell: bash
186+
if: runner.os == 'Linux'
192187
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
213204
fi
205+
echo "::endgroup::"
206+
fi
214207
# Target: target-setup-perl
215208
- name: target-setup-perl (actions-setup-perl)
216209
shell: bash
@@ -257,7 +250,7 @@ runs:
257250
)
258251
uses: actions/cache@v4
259252
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 }}
261254
path: ~/perl5
262255
- name: target-setup-perl (ccache)
263256
# ccache support on Windows is not well-tested
@@ -284,8 +277,8 @@ runs:
284277
) }}; then
285278
echo "::group::setup-perl (setup local::lib)"
286279
# 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 )
289282
LOCALLIB_VARS="$($MYPERL -I ~/perl5/lib/perl5 -Mlocal::lib=--shelltype,bourne )"
290283
eval $( echo "$LOCALLIB_VARS" | $MYPERL -MFile::Spec -pne '
291284
$_ = "" if /^PATH=/;
@@ -334,8 +327,8 @@ runs:
334327
) }}; then
335328
echo "::group::test-release-testing (via cpanm)"
336329
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 )
339332
if [ -d xt ]; then
340333
$TEST_RUNNER_PREFIX $MYPERL -S prove -lr xt
341334
else
@@ -366,11 +359,14 @@ runs:
366359
fi
367360
echo "::endgroup::"
368361
fi
369-
- name: GNU make for Windows
362+
- name: set MYMAKE (Windows)
370363
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
374370
- name: target-test (no coverage)
375371
shell: bash
376372
env:
@@ -388,7 +384,7 @@ runs:
388384
if [ -f Makefile.PL ]; then
389385
( $TEST_RUNNER_PREFIX make && $TEST_RUNNER_PREFIX make test ) || exit 1
390386
elif [ -f Build.PL ]; then
391-
( $TEST_RUNNER_PREFIX ./Build test ) || exit 1
387+
( $TEST_RUNNER_PREFIX $MYPERL Build test ) || exit 1
392388
else
393389
echo "No file Makefile.PL or Build.PL" >&2
394390
fi
@@ -409,8 +405,8 @@ runs:
409405
) }}; then
410406
echo "::group::test (with coverage)"
411407
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 )
414410
$TEST_RUNNER_PREFIX $MYPERL -S cover -test -relative_only -gcov_chdir -report Coveralls
415411
echo "::endgroup::"
416412
fi

0 commit comments

Comments
 (0)