Skip to content

pr: more compatible -h option #1107

pr: more compatible -h option

pr: more compatible -h option #1107

Workflow file for this run

# brian's standard GitHub Actions Windows config for Perl 5 modules
# version 20240824.001
# https://github.com/briandfoy/github_workflows
# https://github.com/features/actions
# This file is licensed under the Artistic License 2.0
#
# This uses the AUTOMATED_TESTING environment that you can set up
# in your repo settings. Or not. It still works if it isn't defined.
# In that environment, add whatever environment variables or secrets
# that you want.
---
name: windows
# https://github.com/actions/checkout/issues/1590
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
# https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/using-concurrency
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref || github.run_id }}
cancel-in-progress: true
on:
push:
branches:
- '**'
- '!**appveyor**'
- '!**circleci**'
- '!**linux**'
- '!**macos**'
- '!**notest**'
- '!**release**'
tags-ignore:
# I tag release pushes but those should have already been tested
- 'release-*'
paths-ignore:
# list all the files which are irrelevant to the tests
# non-code, support files, docs, etc
- '.appveyor.yml'
- '.circleci'
- '.gitattributes'
- '.github/workflows/linux.yml'
- '.github/workflows/macos.yml'
- '.github/workflows/release.yml'
- '.gitignore'
- '.releaserc'
- 'Changes'
- 'LICENSE'
- 'README.pod'
pull_request:
jobs:
perl:
environment: automated_testing
runs-on: ${{ matrix.os }}
# store any secrets in an environment named "testing"
strategy:
matrix:
os:
- windows-2019
- windows-2022
steps:
- run: git config --global core.autocrlf false
- uses: actions/checkout@v3
- name: Set up Perl
run: |
choco install strawberryperl
echo "C:\strawberry\c\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "C:\strawberry\perl\site\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "C:\strawberry\perl\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Perl version
run: perl -V
# Install the dependencies, again not testing them. This installs the
# module in the current directory, so we end up installing the module,
# but that's not a big deal.
- name: Install dependencies
run: |
cpan -M https://www.cpan.org -T .
cpan -M https://www.cpan.org -T Test::Manifest
- name: Run tests
run: |
perl Makefile.PL
make test
# Run author tests, but only if there's an xt/ directory
- name: Author tests
if: hashFiles('xt') != ''
run: |
cpan -M https://www.cpan.org -T Test::CPAN::Changes
prove -r -b xt
# Running tests in parallel should be faster, but it's also more
# tricky in cases where different tests share a feature, such as a
# file they want to write to. Parallel tests can stomp on each other.
# Test in parallel to catch that, because other people will test your
# stuff in parallel.
- name: Run tests in parallel
env:
HARNESS_OPTIONS: j10
run: |
perl Makefile.PL
make test
# The disttest target creates the distribution, unwraps it, changes
# into the dist dir, then runs the tests there. That checks that
# everything that should be in the dist is in the dist. If you forget
# to update MANIFEST with new modules, data files, and so on, you
# should notice the error.
- name: Run distribution tests
run: |
perl Makefile.PL
make disttest
make clean
# And, coverage reports. Windows Devel::Coverage can't handle threads,
# so set the env var WINDOWS_SKIP_COVERAGE to skip this part.
- name: Run coverage tests
if: env.WINDOWS_SKIP_COVERAGE != 0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cpan -M https://www.cpan.org -T Devel::Cover Devel::Cover::Report::Coveralls
perl Makefile.PL
cover -test -report coveralls