Skip to content

Parallel version of AGAT #850

Parallel version of AGAT

Parallel version of AGAT #850

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the action will run.
# Triggers the workflow on push or pull request events
on: [push, pull_request, workflow_dispatch]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a second job called "build2"
build_perl536:
# avoid to run twice push and PR
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
# The type of runner that the job will run on
runs-on: ubuntu-22.04
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Install required system packages
run: sudo apt-get -y install libdb-dev r-base build-essential
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout AGAT code
uses: actions/checkout@v4
- name: Setup Perl
uses: shogo82148/actions-setup-perl@v1
with:
perl-version: '5.36'
install-modules-with: cpanm
install-modules-args: --notest --force
install-modules: ExtUtils::MakeMaker File::ShareDir::Install
enable-modules-cache: true
- name: Check Perl @INC paths and installed modules
run: |
echo "Perl include paths (\@INC):"
perl -le 'print for @INC'
echo -e "\nWhich cpanm:"
which cpanm
echo -e "\ncpanm install base:"
cpanm --show File::ShareDir::Install || echo "Not found"
- name: Show full path of installed Perl modules
run: |
echo "Showing installation path for Perl modules:"
perl -MExtUtils::Installed -le '
my $inst = ExtUtils::Installed->new();
for my $module ($inst->modules) {
my $dir = $inst->directory($module);
print "$module => $dir";
}
'
- name: Cache perl modules
uses: actions/cache@v4
with:
path: ~/perl5
key: ${{ runner.os }}-perl5-${{ hashFiles('**/Makefile.PL') }}
restore-keys: |
${{ runner.os }}-perl5-
- name: install AGAT dependencies
run: |
cpanm --local-lib=~/perl5 --installdeps --notest --force .
env:
PERL5LIB: "$HOME/perl5/lib/perl5"
PATH: "$HOME/perl5/bin:$PATH"
- name: Show cpanm build log on failure
if: failure()
run: cat ~/.cpanm/build.log || echo "No build log found"
- name: Run test
run: make test
env:
PERL5LIB: "$HOME/perl5/lib/perl5"
PATH: "$HOME/perl5/bin:$PATH"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# This workflow contains a first job called "build"
build_perl530:
# avoid to run twice push and PR
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
# The type of runner that the job will run on
runs-on: ubuntu-22.04
#container:
# image: perl:5.30
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Install required system packages
run: sudo apt-get -y install libdb-dev r-base
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
# Use of Devel::Cover@1.44 because newer versions take in account all scripts (even those we just do a -h). It drops the coverage ~5%. I would improve testing before unpinning this version.
- uses: actions/checkout@v4
- name: Setup Perl
uses: shogo82148/actions-setup-perl@v1
with:
perl-version: '5.30'
install-modules-with: cpanm
install-modules-args: --notest --force
install-modules: File::ShareDir::Install Devel::Cover@1.44 Devel::Cover::Report::Coveralls Parallel::ForkManager
enable-modules-cache: true
- uses: webiny/action-post-run@2.0.1
id: post-run-command
if: ${{ failure() }}
with:
run: cat /home/runner/.cpanm/build.log
- name: install AGAT deps
run: cpanm --installdeps --notest --force .
- name: test
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEVEL_COVER_OPTIONS: "+ignore,^local/"
run: cover -test -report Coveralls