Skip to content

github workflow: switch to taiki-e/checkout-action@v1 + add more test… #17

github workflow: switch to taiki-e/checkout-action@v1 + add more test…

github workflow: switch to taiki-e/checkout-action@v1 + add more test… #17

Workflow file for this run

name: CI
on:
push:
branches-ignore:
- '*travis*'
- '*appveyor*'
- '*doozer*'
pull_request:
workflow_dispatch:
jobs:
test:
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: 'ubuntu-20.04'
- os: 'ubuntu-22.04'
- os: 'ubuntu-24.04'
steps:
- name: apt hacks
# removing non-needed apt repositories may speed up "apt-get update"
# also, 3rd party repositories might be unreliable
run: |
sudo rm -f /etc/apt/sources.list.d/*.list
sudo apt-get update -qq
if: "startsWith(matrix.os, 'ubuntu-')"
- uses: taiki-e/checkout-action@v1
- name: Preinstall, Configure, Build and Test
env:
HARNESS_TIMER: 1
HARNESS_OPTIONS: j8
run: |
sudo apt-get install -qq --no-install-recommends cpanminus
cpanm --sudo --quiet --installdeps --notest . || ( cat ~/.cpanm/work/*/build.log; false )
perl Makefile.PL
make -j8
make test
if: "!startsWith(matrix.os,'windows-')"
test_in_container:
name: Test with perl ${{ matrix.perlimage }} ${{ matrix.label }}
runs-on: ubuntu-latest
container: perl:${{ matrix.perlimage }}
strategy:
matrix:
include:
- perlimage: 5.8.9-threaded-stretch
- perlimage: 5.10.1-buster
- perlimage: 5.12.5-stretch
- perlimage: 5.14.4-stretch
- perlimage: 5.16.3-buster
- perlimage: 5.18.4-buster
- perlimage: 5.22.4-stretch
- perlimage: 5.24.4-threaded-buster
WITH_JSON_XS: 1
WITH_YAML_SYCK: 1
label: "with JSON::XS + YAML::Syck"
- perlimage: 5.26.3-buster
WITH_JSON_XS: 1
WITH_YAML_XS: 1
label: "with JSON::XS + YAML::XS"
- perlimage: 5.28.3-buster
WITH_JSON: 1
WITH_YAML: 1
label: "with JSON + YAML"
- perlimage: 5.30.3-bullseye
WITH_YAML_SYCK: 1
label: "with YAML::Syck"
- perlimage: 5.32.1-bullseye
WITH_YAML_XS: 1
label: "with YAML::XS"
- perlimage: 5.34.3-bullseye
WITH_YAML_PP: 1
label: "with YAML::PP"
- perlimage: 5.36.3-bookworm
WITH_YAML: 1
label: "with YAML"
- perlimage: 5.38.2-bookworm
WITH_JSON: 1
WITH_YAML: 1
WITH_IPC_RUN: 1
DO_COVERALLS: 1
label: "with JSON + YAML + IPC::Run + DO_COVERALLS"
- perlimage: 5.40.0-slim-bookworm
steps:
- name: apt hacks
run: |
set -e
CODENAME=$(perl -nle '/^VERSION_CODENAME="?([^"]+)/ and $codename=$1; /^VERSION="\d+ \((.*)\)/ and $maybe_codename=$1; END { print $codename || $maybe_codename }' /etc/os-release)
case "$CODENAME" in
wheezy|jessie|stretch)
echo "APT::Get::AllowUnauthenticated 1;" > /etc/apt/apt.conf.d/02allow-unsigned
echo "deb [check-valid-until=no] http://archive.debian.org/debian $CODENAME main" > /etc/apt/sources.list
echo "deb [check-valid-until=no] http://archive.debian.org/debian-security/ $CODENAME/updates main" >> /etc/apt/sources.list
;;
esac
- uses: taiki-e/checkout-action@v1
- name: Preinstall, Configure, Build and Test
env:
HARNESS_TIMER: 1
HARNESS_OPTIONS: j8
DO_COVERALLS: ${{ matrix.DO_COVERALLS }}
WITH_JSON_XS: ${{ matrix.WITH_JSON_XS }}
WITH_JSON: ${{ matrix.WITH_JSON }}
WITH_YAML_SYCK: ${{ matrix.WITH_YAML_SYCK }}
WITH_YAML_XS: ${{ matrix.WITH_YAML_XS }}
WITH_YAML_PP: ${{ matrix.WITH_YAML_PP }}
WITH_YAML: ${{ matrix.WITH_YAML }}
WITH_IPC_RUN: ${{ matrix.WITH_IPC_RUN }}
run: |
[ "$DO_COVERALLS" = 1 ] && cpanm --quiet --notest Devel::Cover::Report::Coveralls || true
[ "$WITH_JSON_XS" = 1 ] && cpanm --quiet --notest JSON::XS || true
[ "$WITH_JSON" = 1 ] && cpanm --quiet --notest JSON || true
[ "$WITH_YAML_SYCK" = 1 ] && cpanm --quiet --notest YAML::Syck || true
[ "$WITH_YAML_XS" = 1 ] && cpanm --quiet --notest YAML::XS || true
[ "$WITH_YAML_PP" = 1 ] && cpanm --quiet --notest YAML::PP || true
[ "$WITH_YAML" = 1 ] && cpanm --quiet --notest YAML || true
[ "$WITH_IPC_RUN" = 1 ] && cpanm --quiet --notest IPC::Run || true
cpanm --quiet --installdeps --notest . || ( cat ~/.cpanm/work/*/build.log; false )
perl Makefile.PL
make -j8
make test
[ "$DO_COVERALLS" = 1 ] && cover -test -report coveralls || true