Skip to content

Update other-gccs.yml #2

Update other-gccs.yml

Update other-gccs.yml #2

Workflow file for this run

name: Perl CI with Inline::C and OpenMP
on: [push, pull_request]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false # Ensure all jobs run even if one fails
matrix:
os: ["ubuntu-latest"]
perl: ["5.40.1"] #, "5.38", "5.36", "5.34", "5.32", "5.30", "5.28", "5.26", "5.24", "5.22", "5.20", "5.18", "5.16", "5.14", "5.12"]
gcc: ["13", "11", "9"] # Different GCC versions to test
name: Perl ${{ matrix.perl }} with GCC-${{ matrix.gcc }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
# Install the requested GCC version and dependencies
- name: Install GCC-${{ matrix.gcc }} and Dependencies
run: |
sudo apt update
sudo apt install -y gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }} build-essential libgomp1 curl
# Switch GCC at the OS level using update-alternatives
- name: Set GCC-${{ matrix.gcc }} as Default
run: |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ matrix.gcc }} 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${{ matrix.gcc }} 100
sudo update-alternatives --set gcc /usr/bin/gcc-${{ matrix.gcc }}
sudo update-alternatives --set g++ /usr/bin/g++-${{ matrix.gcc }}
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
echo "CC=$CC" >> $GITHUB_ENV
echo "CXX=$CXX" >> $GITHUB_ENV
echo "Using system GCC version:"
gcc --version
# Install Perlbrew
- name: Install Perlbrew
run: |
curl -L https://install.perlbrew.pl | bash
echo 'export PERLBREW_ROOT=$HOME/perl5/perlbrew' >> $HOME/.bashrc
echo 'source $HOME/perl5/perlbrew/etc/bashrc' >> $HOME/.bashrc
export PERLBREW_ROOT=$HOME/perl5/perlbrew
export PATH="$PERLBREW_ROOT/bin:$PATH"
source $HOME/perl5/perlbrew/etc/bashrc
perlbrew available
# Install and Use the Requested Perl Version
- name: Install Perl ${{ matrix.perl }} with GCC-${{ matrix.gcc }}
run: |
export PERLBREW_ROOT=$HOME/perl5/perlbrew
export PATH="$PERLBREW_ROOT/bin:$PATH"
source $HOME/perl5/perlbrew/etc/bashrc
perlbrew --verbose --notest install perl-${{ matrix.perl }} -Dcc=$CC
perlbrew use perl-${{ matrix.perl }}
perl -V
perl -v
# Install Required Perl Modules
- name: Install Required Perl Modules
run: |
export PERLBREW_ROOT=$HOME/perl5/perlbrew
export PATH="$PERLBREW_ROOT/bin:$PATH"
source $HOME/perl5/perlbrew/etc/bashrc
perlbrew use perl-${{ matrix.perl }}
cpanm --verbose --notest Module::Build Inline::C Alien::OpenMP