GitHub Actions: update workflow #15
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: "multiperl test" | |
on: | |
push: | |
branches: "*" | |
tags-ignore: "*" | |
pull_request: ~ | |
# FUTURE ENHANCEMENT(s): | |
# * install faster (see below) | |
# * use github.event.repository.name or ${GITHUB_REPOSITORY#*/} as the | |
# tarball/build name instead of Dist-To-Test | |
jobs: | |
build-tarball: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
- name: Install cpanminus | |
run: | | |
curl https://cpanmin.us/ > /tmp/cpanm | |
chmod u+x /tmp/cpanm | |
- name: Install Dist::Zilla | |
run: sudo apt-get install -y libdist-zilla-perl | |
- name: Install prereqs | |
# This could probably be made more efficient by looking at what it's | |
# installing via cpanm that could, instead, be installed from apt. I | |
# may do that later, but for now, it's fine! -- rjbs, 2023-01-07 | |
run: | | |
dzil authordeps --missing > /tmp/deps-phase-1.txt | |
/tmp/cpanm --notest -S < /tmp/deps-phase-1.txt | |
dzil listdeps --author --missing >> /tmp/deps-phase-2.txt | |
/tmp/cpanm --notest -S < /tmp/deps-phase-2.txt | |
- name: Build tarball | |
run: | | |
dzil build --in Dist-To-Test | |
tar zcvf Dist-To-Test.tar.gz Dist-To-Test | |
- name: Upload tarball | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Dist-To-Test.tar.gz | |
path: Dist-To-Test.tar.gz | |
multiperl-test: | |
needs: build-tarball | |
env: | |
# some plugins still needs this to run their tests... | |
PERL_USE_UNSAFE_INC: 0 | |
AUTHOR_TESTING: 1 | |
AUTOMATED_TESTING: 1 | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
perl-version: [ "devel", "5.38", "5.36", "5.34", "5.32", "5.30", "5.28", "5.26", "5.24", "5.22", "5.20", "5.18", "5.16", "5.14", "5.12" ] | |
container: | |
image: perldocker/perl-tester:${{ matrix.perl-version }} | |
steps: | |
- name: Download tarball | |
uses: actions/download-artifact@v4 | |
with: | |
name: Dist-To-Test.tar.gz | |
- name: Extract tarball | |
run: tar zxvf Dist-To-Test.tar.gz | |
- name: Install dependencies | |
working-directory: ./Dist-To-Test | |
run: cpanm --installdeps --notest . | |
- name: Makefile.PL | |
working-directory: ./Dist-To-Test | |
run: perl Makefile.PL | |
- name: Install yath | |
run: cpanm --notest Test2::Harness | |
- name: Install testing libraries | |
run: cpanm --notest Test2::Harness::Renderer::JUnit | |
- name: Run the tests | |
working-directory: ./Dist-To-Test | |
run: | | |
JUNIT_TEST_FILE="/tmp/test-output.xml" ALLOW_PASSING_TODOS=1 yath test --renderer=Formatter --renderer=JUnit -D | |
- name: Publish test report | |
uses: mikepenz/action-junit-report@v3 | |
if: always() # always run even if the previous step fails | |
with: | |
check_name: JUnit Report (${{ matrix.perl-version }}) | |
report_paths: /tmp/test-output.xml |