cpm workflow #41
Workflow file for this run
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 cpam | |
run: | | |
/tmp/cpanm --notest -S App::cpm | |
- name: Install Dist::Zilla | |
run: sudo apt-get install -y libdist-zilla-perl | |
- name: Install authordeps | |
run: | | |
dzil authordeps --missing > /tmp/deps-phase-1.txt | |
echo "---BEGIN AUTHORDEPS---" | |
cat /tmp/deps-phase-1.txt | |
echo "---END AUTHORDEPS---" | |
cpm install -g - < /tmp/deps-phase-1.txt | |
- name: Install missing prereqs | |
run: | | |
dzil listdeps --author --missing > /tmp/deps-phase-2.txt | |
echo "---BEGIN PREREQS---" | |
cat /tmp/deps-phase-2.txt | |
echo "---END PREREQS---" | |
cpm install -g - < /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" ] | |
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@v4 | |
if: always() # always run even if the previous step fails | |
with: | |
check_name: JUnit Report (${{ matrix.perl-version }}) | |
report_paths: /tmp/test-output.xml |