name: Perl Tests
on:
push:
branches-ignore:
- 'exp-**'
- 'exp/**'
pull_request:
branches-ignore:
- 'exp-**'
- 'exp/**'
jobs:
test:
strategy:
fail-fast: false
matrix:
os: [[% FOREACH o IN github.use_ci.runners %] [% o %], [% END %]]
perl: [ '[% short_min_perl_version %]', '5.38' ]
exclude:
# MacOS runners are very expensive, so let’s run only on the latest Perl
- os: macos
perl: '[% short_min_perl_version %]'
# From time to time, Strawberry Perl does not have the latest Perl
# version. So these lines can be uncommented to remove it (and replace
# it with another version in the include section below).
# Currently Strawberry Perl has 5.38
# - os: windows
# perl: '5.38'
# include:
# - os: windows
# perl: '5.32'
runs-on: ${{matrix.os}}-latest
name: Perl ${{matrix.perl}} ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- name: Set up perl
uses: shogo82148/actions-setup-perl@v1
with:
perl-version: ${{ matrix.perl }}
distribution: ${{ ( matrix.os == 'windows' && 'strawberry' ) || 'default' }}
- name: Show Perl Version
run: |
perl -v
- name: Install aspell
if: ${{ matrix.os == 'ubuntu' }}
run: |
sudo apt-get install aspell
- name: Install Modules
if: ${{ matrix.os != 'macos' }}
run: |
cpanm -V
cpanm -v --installdeps --notest --with-configure --with-recommends --with-suggests --with-all-features [% FOREACH f IN github.use_ci.excluded_features %]--without-feature [% f %] [% END %].
# MacOS runners are very costly, so let’s install the minimum amount of
# dependency.
- name: Install Modules on MacOS
if: ${{ matrix.os == 'macos' }}
run: |
cpanm -V
cpanm -v --installdeps --notest --with-configure --without-recommends --without-suggests .
- name: Run tests on Linux
if: ${{ matrix.os == 'ubuntu' }}
env:
AUTOMATED_TESTING: 1
NONINTERACTIVE_TESTING: 1
EXTENDED_TESTING: 1
RELEASE_TESTING: 1
run: |
perl Makefile.PL
make
make test
# MacOS runners are very costly, so let’s not run the EXTENDED_TESTING
# tests, to save some cost.
- name: Run tests on MacOS
if: ${{ matrix.os == 'macos' }}
env:
AUTOMATED_TESTING: 1
NONINTERACTIVE_TESTING: 1
RELEASE_TESTING: 1
run: |
perl Makefile.PL
make
make test
# On Windows there is no 'make' command. It seems that Makefile.PL defaults
# to using 'dmake' which is maybe installed on the GitHub VMs. However we
# know that there is a 'gmake' included with Strawberry Perl, so let’s use
# that one.
- name: Run tests on Windows
if: ${{ matrix.os == 'windows' }}
env:
AUTOMATED_TESTING: 1
NONINTERACTIVE_TESTING: 1
RELEASE_TESTING: 1
run: |
perl Makefile.PL MAKE=gmake
gmake
gmake test
- name: Show Errors on Linux
if: ${{ failure() && matrix.os == 'ubuntu' }}
run: |
cat /home/runner/.cpanm/work/*/build.log
- name: Show Errors on Windows
if: ${{ failure() && matrix.os == 'windows' }}
run: |
ls -l C:/Users/
ls -l C:/Users/RUNNER~1/
cat C:/Users/runneradmin/.cpanm/work/*/build.log
- name: Show Errors on MacOS
if: ${{ failure() && matrix.os == 'macos' }}
run: |
cat /Users/runner/.cpanm/work/*/build.log