Skip to content

Simplify TestServer dispatch() interface to ($c, $r) #200

Simplify TestServer dispatch() interface to ($c, $r)

Simplify TestServer dispatch() interface to ($c, $r) #200

---
name: dzil build and test
on:
push:
branches:
- master
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build distribution
runs-on: ubuntu-24.04
container:
image: perldocker/perl-tester:5.42
steps:
- uses: actions/checkout@v6
- name: Build Dist
run: >
cpan-install-build-deps;
build-dist
- uses: actions/upload-artifact@v7
with:
name: build_dir
path: build_dir
coverage-job:
needs: build
runs-on: ubuntu-24.04
container:
image: perldocker/perl-tester:5.42
steps:
- uses: actions/checkout@v6 # codecov wants to be inside a Git repository
- uses: actions/download-artifact@v8
with:
name: build_dir
path: .
- name: Install deps and test
run: cpan-install-dist-deps && test-dist
env:
CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}}
HARNESS_PERL_SWITCHES: "-MDevel::Cover=+ignore,^local/|^t/|^xt"
test_linux:
runs-on: ubuntu-latest
name: Perl ${{ matrix.perl-version }} on ubuntu-latest
needs: build
strategy:
fail-fast: false
matrix:
perl-version:
- "5.10"
- "5.12"
- "5.14"
- "5.16"
- "5.18"
- "5.20"
- "5.22"
- "5.24"
- "5.26"
- "5.28"
- "5.30"
- "5.32"
- "5.34"
- "5.36"
- "5.38"
- "5.40"
- "5.42"
container:
image: perldocker/perl-tester:${{ matrix.perl-version }}
env:
AUTHOR_TESTING: 0
RELEASE_TESTING: 0
steps:
- uses: actions/download-artifact@v8
with:
name: build_dir
path: .
- name: Install deps
if: success()
uses: perl-actions/install-with-cpm@v2
with:
cpanfile: "cpanfile"
args: "--with-recommends --with-suggests --with-test"
sudo: false
# App::cpm v0.999.0+ requires Perl 5.24+; pin older Perls to the last compatible release.
version: ${{ matrix.perl-version <= '5.22' && '0.998003' || 'main' }}
- name: Run Tests
if: success()
run: prove -lrv t
test_macos:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["macos-latest"]
perl-version:
- "5.14"
- "5.16"
- "5.18"
- "5.20"
- "5.22"
- "5.24"
- "5.26"
- "5.28"
- "5.30"
- "5.34"
- "5.36"
- "5.38"
- "5.40"
- "5.42"
name: Perl ${{ matrix.perl-version }} on ${{ matrix.os }}
needs: build
steps:
- uses: actions/checkout@v6
- name: Set Up Perl
uses: shogo82148/actions-setup-perl@v1.41.0
with:
perl-version: ${{ matrix.perl-version }}
- uses: actions/download-artifact@v8
with:
name: build_dir
path: .
- run: perl -V
- name: install deps using cpm
uses: perl-actions/install-with-cpm@v2
with:
cpanfile: "cpanfile"
args: "--with-recommends --with-suggests --with-test"
sudo: false
# App::cpm v0.999.0+ requires Perl 5.24+; pin older Perls to the last compatible release.
version: ${{ matrix.perl-version <= '5.22' && '0.998003' || 'main' }}
- run: prove -lrv t
env:
AUTHOR_TESTING: 0
RELEASE_TESTING: 0
test_windows:
# Temporarily disabled - re-enable by removing this `if`.
if: false
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["windows-latest"]
perl-version:
# https://github.com/shogo82148/actions-setup-perl/issues/223
#- "5.10"
#- "5.12"
#- "5.14"
#- "5.16"
#- "5.18"
#- "5.20"
#- "5.22"
- "5.24"
- "5.26"
- "5.28"
- "5.30"
name: Perl ${{ matrix.perl-version }} on ${{ matrix.os }}
needs: build
steps:
- uses: actions/checkout@v6
- name: Set Up Perl
uses: shogo82148/actions-setup-perl@v1.41.0
with:
perl-version: ${{ matrix.perl-version }}
- uses: actions/download-artifact@v8
with:
name: build_dir
path: .
- name: install deps using cpanm
uses: perl-actions/install-with-cpm@v2
with:
cpanfile: "cpanfile"
sudo: false
# App::cpm v0.999.0+ requires Perl 5.24+; pin older Perls to the last compatible release.
version: ${{ matrix.perl-version <= '5.22' && '0.998003' || 'main' }}
- run: perl -V
- run: prove -lrv t
env:
AUTHOR_TESTING: 0
RELEASE_TESTING: 0