github workflow: switch to taiki-e/checkout-action@v1 + add more test… #17
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |