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-22.04 os: ubuntu-22.04 - config_name: ubuntu-24.04 os: ubuntu-24.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-24.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