GitHub Action
install with cpanminus
GitHub action to install Perl Modules App::cpanminus
This action installs 'cpanminus' then use it if needed to install some Perl Modules.
- name: install cpanm and multiple modules
uses: perl-actions/install-with-cpanm@v1
with:
install: |
Simple::Accessor
Test::Parallel
# or you can use a cpanfile
# cpanfile: 'your-cpanfile'
# default values you can customize
# sudo: true
# where to install cpanm
# path: "$Config{installsitescript}/cpanm"
# which perl binary to use
# perl: 'perl'
Here is a sample integration using install-with-cpanm action to test your Perl Modules using multiple Perl versions via the perl-tester images.
# .github/workflows/linux.yml
jobs:
perl_tester:
runs-on: ubuntu-latest
name: "perl v${{ matrix.perl-version }}"
strategy:
fail-fast: false
matrix:
perl-version:
- "5.30"
- "5.28"
- "5.26"
# ...
# - '5.8'
container:
image: perldocker/perl-tester:${{ matrix.perl-version }}
steps:
- uses: actions/checkout@v2
- name: uses install-with-cpanm
uses: perl-actions/install-with-cpanm@v1
with:
cpanfile: "cpanfile"
sudo: false
- run: perl Makefile.PL
- run: make test
List of one or more modules, separated by a newline \n
character.
Install modules from a cpanfile.
Boolean variable used to disable unit tests during installation Possible values: true | false [default: false]
Boolean variable used to control the -v
flag
Possible values: true | false [default: false]
Note: this was previously set to true by default, this is now disabled to speedup installations.
Extra arguments to pass to the cpanm command line used by install
or cpanfile
.
example:
args: "-L vendor"
You can also use this option to run your own flavor
without the need of setting install
or cpanfile
.
args: "--installdeps ."
Run commands as sudo: true | false [default: true]
Which perl path to use. Default to use perl
from the current PATH
.
By setting PATH correctly you probably do not need to use it.
Where to install cpanm
. Default value is $Config{installsitescript}/cpanm
.
You can use any $Config
variable in your string.
none
uses: perl-actions/install-with-cpanm@v1
# you can then use it later
run: sudo cpanm Module::To::Install
but you should prefer let the action install your modules
- name: install cpanm and one module
uses: perl-actions/install-with-cpanm@v1
with:
install: "Simple::Accessor"
- name: install cpanm and one module
uses: perl-actions/install-with-cpanm@v1
with:
install: |
Simple::Accessor
Test::Parallel
- name: install cpanm and files from cpanfile
uses: perl-actions/install-with-cpanm@v1
with:
cpanfile: "your-cpanfile"
Install modules with tests.
- name: install cpanm and files from cpanfile
uses: perl-actions/install-with-cpanm@v1
with:
install: "Simple::Accessor"
tests: true
Here is a sample job using cpanm to install modules on windows.
windows:
runs-on: windows-latest
name: "windows"
steps:
- name: Set up Perl
run: |
choco install strawberryperl
echo "##[add-path]C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin"
- name: perl -V
run: perl -V
- uses: actions/checkout@v2
- name: "install-with-cpanm"
uses: perl-actions/install-with-cpanm@v1
with:
install: |
abbreviation
ACH
# checking that both modules are installed
- run: perl -Mabbreviation -e1
- run: perl -MACH -e1