Files
Config-General/.github/workflows/unittests.yaml

167 lines
4.1 KiB
YAML

name: Test Config::General
on:
push:
branches-ignore:
- '*test*'
- '*dev*'
pull_request:
workflow_dispatch:
jobs:
test:
name: Test on ${{ matrix.config_name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- config_name: ubuntu-20.04
os: ubuntu-20.04
- config_name: ubuntu-22.04
os: ubuntu-22.04
- config_name: macos-13
os: macos-13
- config_name: macos-14
os: macos-14
- config_name: macos-15
os: macos-15
- config_name: windows-latest
os: windows-latest
steps:
- uses: actions/checkout@v4
with:
clean: false
show-progress: false
- name: Build
run: |
perl Makefile.PL
make -j4
- name: Build on Unix-like systems
run: |
make test
if: "!startsWith(matrix.os, 'windows-')"
- name: Build on Windows
run: |
make test HARNESS_VERBOSE=1
timeout-minutes: 3
if: "startsWith(matrix.os, 'windows-')"
test_in_linux_container:
name: Test with ${{ matrix.image }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- image: ubuntu:noble
- image: fedora:40
steps:
# Note: checkout@v4 does not work with older debians
# (e.g.stretch), so do this step *outside* the container
- uses: actions/checkout@v4
- name: Preinstall, Configure, Build and Test
run: |
docker run --quiet -v $(pwd):$(pwd) ${{ matrix.image }} sh -c "cd $(pwd); "'
set -ex
export HARNESS_TIMER=1
export HARNESS_OPTIONS=j8
if which apt-get 2>/dev/null >/dev/null; then
apt-get update -qq && apt-get install -qy --no-install-recommends libperl5.38 libmodule-build-perl make
else
dnf -y install perl-core
fi
perl Makefile.PL
make -j4
make test
'
test_in_perl_container:
name: Test with ${{ matrix.image }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- image: perl:5.8.9-threaded-stretch
- image: perl:5.10.1-buster
- image: perl:5.12.5-stretch
- image: perl:5.14.4-stretch
- image: perl:5.16.3-buster
- image: perl:5.18.4-buster
- image: perl:5.22.4-stretch
- image: perl:5.36.0-slim-bullseye
- image: perl:5.38.0-slim-bookworm
- image: perl:5.40.0-slim-bookworm
steps:
- uses: actions/checkout@v4
- name: Preinstall, Configure, Build and Test
run: |
docker run --quiet -v $(pwd):$(pwd) ${{ matrix.image }} sh -c "cd $(pwd); "'
set -ex
export HARNESS_TIMER=1
export HARNESS_OPTIONS=j8
perl Makefile.PL
make -j4
make test
'
test_freebsd:
name: Test on FreeBSD ${{ matrix.osvers }}
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
include:
- osvers: '13.3'
- osvers: '14.1'
steps:
- uses: actions/checkout@v4
with:
clean: false
show-progress: false
- uses: cross-platform-actions/action@v0.25.0
with:
operating_system: freebsd
version: '${{ matrix.osvers }}'
run: |
sudo env IGNORE_OSVERSION=yes pkg update -f
sudo pkg install -y perl5
perl Makefile.PL
make -j4
make test
test_dist:
name: Test dist file
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
clean: false
show-progress: false
- name: Build dist file
run: |
perl Makefile.PL
make -j4 dist
- name: unpack dist file
run: |
tar xfz Config-General-*.tar.gz
rm -f Config-General-*.tar.gz
cd Config-General-*
- name: Run tests in dist
run: |
perl Makefile.PL
make -j4 test