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