-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #217 from rjbs/workflow
add GitHub Actions testing with dzil workflower
- Loading branch information
Showing
1 changed file
with
90 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
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@v3 | ||
- 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@v3 | ||
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.36", "5.34", "5.32" ] | ||
|
||
container: | ||
image: perldocker/perl-tester:${{ matrix.perl-version }} | ||
|
||
steps: | ||
- name: Download tarball | ||
uses: actions/download-artifact@v3 | ||
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 |