How to Write Tests using Github Actions
I explain how to write tests using Github Actions. This tests are run on Windows, Linux/Ubuntu(64bit, 32bit), Mac, and support Perl 5.8. Dependent CPAN modules can be used.
Examples of Tests using Github Actions
See examples at first.
Downloading cpanm
Download cpanm into your home direcotry of your product and add excutable permission to it.
curl -L http://cpanmin.us > cpanm chmod +x cpanm
Github Actions Definitions
These are Github Actions.
Linux - Ubuntu - 64bit
Ubuntrulinux-ubuntu-latest.yml
name: linux-ubuntu-latest
on:
push:
branches:
- '*'
tags-ignore:
- '*'
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: perl -V
- run: perl -MConfig -MData::Dumper -e 'local $Data::Dumper::Sortkeys = 1;warn Dumper \%Config;'
- run: perl cpanm -L ~/mylib -n SPVM
- run: echo "PERL5LIB=$HOME/mylib/lib/perl5/"$(perl -MConfig -e 'print $Config{archname}') >> $GITHUB_ENV
- run: perl Makefile.PL
- run: make
- run: make disttest
Linux - Ubuntu - 32bit
linux-ubuntu-latest-32bit.yml
name: linux-ubuntu-latest-32bit
on:
push:
branches:
- '*'
tags-ignore:
- '*'
pull_request:
jobs:
build:
runs-on: ubuntu-latest
container:
image: i386/ubuntu:latest
steps:
- run: |
apt update
apt install -y libperl-dev build-essential
- uses: actions/checkout@v1
- run: perl -V
- run: perl -MConfig -MData::Dumper -e 'local $Data::Dumper::Sortkeys = 1;warn Dumper \%Config;'
- run: perl cpanm -L ~/mylib -n SPVM
- run: echo "PERL5LIB=$HOME/mylib/lib/perl5/"$(perl -MConfig -e 'print $Config{archname}') >> $GITHUB_ENV
- run: perl Makefile.PL
- run: make
- run: make disttest
Linux - Ubuntu - 64bit - Perl 5.8
linux-ubuntu-latest-perl-5.8.9.yml
name: linux-ubuntu-latest-perl-5.8.9
on:
push:
branches:
- '*'
tags-ignore:
- '*'
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: shogo82148/actions-setup-perl@v1
with:
perl-version: '5.8.9'
- run: perl -V
- run: perl -MConfig -MData::Dumper -e 'local $Data::Dumper::Sortkeys = 1;warn Dumper \%Config;'
- run: perl cpanm ExtUtils::CBuilder
- run: perl cpanm -L ~/mylib -n SPVM
- run: echo "PERL5LIB=$HOME/mylib/lib/perl5/"$(perl -MConfig -e 'print $Config{archname}') >> $GITHUB_ENV
- run: perl Makefile.PL
- run: make
- run: make disttest
Mac
macos-latest.yml
name: macos-latest
on:
push:
branches:
- '*'
tags-ignore:
- '*'
pull_request:
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v1
- run: brew install perl
- run: perl -V
- run: perl -MConfig -MData::Dumper -e 'local $Data::Dumper::Sortkeys = 1;warn Dumper \%Config;'
- run: perl cpanm -L ~/mylib -n SPVM
- run: echo "PERL5LIB=$HOME/mylib/lib/perl5/"$(perl -MConfig -e 'print $Config{archname}') >> $GITHUB_ENV
- run: perl Makefile.PL
- run: make
- run: make disttest
Windows Server 2019
windows-2019.yml
name: windows-2019
on:
push:
branches:
- '*'
tags-ignore:
- '*'
pull_request:
jobs:
perl:
runs-on: windows-2019
steps:
- uses: actions/checkout@master
- run: perl -V
- run: perl -MConfig -MData::Dumper -e 'local $Data::Dumper::Sortkeys = 1;warn Dumper \%Config;'
- run: perl cpanm -n SPVM
- run: perl Makefile.PL
- run: gmake
- run: gmake disttest
Perl ABC