name: Full Matrix
on:
pull_request:
branches: [ main ]
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
smoke:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
perl-version:
- '5.20'
- '5.22'
- '5.24'
- '5.26'
- '5.28'
- '5.30'
- '5.32'
- '5.34'
- '5.36'
- '5.38'
- '5.40'
- '5.42'
- '5.44'
threaded: [ true, false ]
steps:
- uses: actions/checkout@v6
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: rustfmt
rustflags: ""
- uses: shogo82148/actions-setup-perl@v1
with:
perl-version: ${{ matrix.perl-version }}
multi-thread: ${{ matrix.threaded }}
- run: cargo build --locked
- name: Run smoke harness
env:
LIBPERL_APIDOC_CACHE_DIR: ${{ runner.temp }}/apidoc-${{ matrix.perl-version }}-${{ matrix.threaded }}
run: |
MODE=$([ "${{ matrix.threaded }}" = true ] && echo threaded || echo non-threaded)
perl scripts/multi-perl-smoke.pl \
--require ${{ matrix.perl-version }}-$MODE \
--out tmp/multi-perl/out/ci
- name: Upload artifacts on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: smoke-${{ matrix.perl-version }}-${{ matrix.threaded && 'threaded' || 'non-threaded' }}
path: tmp/multi-perl/out/ci/