Skip to content

chore: Update actions to v4 for transition to Node.js 20 #18

chore: Update actions to v4 for transition to Node.js 20

chore: Update actions to v4 for transition to Node.js 20 #18

Workflow file for this run

name: Run Tests
on:
workflow_dispatch:
push:
branches:
- '*'
tags-ignore:
- '*'
pull_request:
create:
env:
PKG_NAME: hdt-java
PKG_UBUNTU: ~
PKG_HOMEBREW: ~
PKG_MSYS2_MINGW64: ~
PKG_MSYS2_MINGW64_DEPS: >-
base-devel
unzip
mingw-w64-x86_64-toolchain
mingw-w64-x86_64-perl
jobs:
notify:
runs-on: ubuntu-latest
continue-on-error: true
if: ${{ always() }}
steps:
- uses: perlrdf/devops/github-actions/irc-notifications@main
with:
target-notifications: true
dist:
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }}
name: Make distribution
runs-on: ubuntu-latest
outputs:
min-perl-version: ${{ steps.build-dist.outputs.min-perl-version }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- id: build-dist
uses: perlrdf/devops/github-actions/build-dist@main
with:
dist-perl-deps-develop: strict # Add modules
test:
needs: [ 'dist', 'notify' ]
runs-on: ${{ matrix.os }}
defaults:
run:
# bash on macos and linux
# powershell on windows + strawberry perl
# msys2 {0} on windows + msys2
shell: >-
${{ fromJSON( '["", "bash {0}"]' )[ startsWith(matrix.os, 'ubuntu-' ) || startsWith(matrix.os, 'macos-') ]
}}${{ fromJSON( '["", "powershell {0}"]' )[ startsWith(matrix.os, 'windows-') && matrix.dist == 'strawberry' ]
}}${{ fromJSON( '["", "msys2 {0}"]' )[ startsWith(matrix.os, 'windows-') && matrix.dist == 'msys2' ] }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
perl-version: ['5.8', '5.20', '5.30', '5.34']
alien-install-type: [ 'share' ]
include:
# Windows strawberry | share
- { perl-version: '5.34' , os: windows-latest , dist: strawberry , alien-install-type: 'share' }
# Windows msys2 | system, share
#- { perl-version: '5.34' , os: windows-latest , dist: msys2 , alien-install-type: 'system' }
#- { perl-version: '5.34' , os: windows-latest , dist: msys2 , alien-install-type: 'share' }
# macOS | system, share
#- { perl-version: '5.34' , os: macos-latest , alien-install-type: 'system' }
- { perl-version: '5.34' , os: macos-latest , alien-install-type: 'share' }
name: Perl ${{ matrix.perl-version }} on ${{ matrix.os }} with install-type ${{ matrix.alien-install-type }}, dist ${{ matrix.dist }}
steps:
- name: Get dist artifact
uses: actions/download-artifact@v4
with:
name: dist
# Setup system package
- name: Setup system ${{ env.PKG_NAME }} (apt)
if: runner.os == 'Linux' && matrix.alien-install-type == 'system'
run: |
sudo apt-get -y update && sudo apt-get install -y ${{ env.PKG_UBUNTU }}
- name: Setup system ${{ env.PKG_NAME }} (homebrew)
if: runner.os == 'macOS' && matrix.alien-install-type == 'system'
run: |
brew install ${{ env.PKG_HOMEBREW }}
- name: Set up MSYS2
uses: msys2/setup-msys2@v2
if: runner.os == 'Windows' && matrix.dist == 'msys2'
with:
update: true
install: ${{ env.PKG_MSYS2_MINGW64_DEPS }}
- name: Set up ${{ env.PKG_NAME }} (MSYS2/MinGW pacman)
if: runner.os == 'Windows' && matrix.dist == 'msys2' && matrix.alien-install-type == 'system'
shell: msys2 {0}
run: |
pacman -S --needed --noconfirm ${{ env.PKG_MSYS2_MINGW64 }}
# Setup Java
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
# Setup Perl
- name: Set up perl
uses: shogo82148/actions-setup-perl@v1
if: runner.os != 'Windows'
with:
perl-version: ${{ matrix.perl-version }}
- name: Set up perl (Strawberry)
uses: shogo82148/actions-setup-perl@v1
if: runner.os == 'Windows' && matrix.dist == 'strawberry'
with:
distribution: 'strawberry'
- run: perl -V
- name: Install cpanm
if: runner.os == 'Windows' && matrix.dist == 'msys2'
run:
yes | cpan -T App::cpanminus || true
- name: Install Perl deps
run: |
cpanm --notest --installdeps .
- name: Install share install deps before setting ALIEN_INSTALL_TYPE
if: matrix.alien-install-type == 'share'
run: |
cpanm --notest Net::SSLeay IO::Socket::SSL
- name: Set ALIEN_INSTALL_TYPE
shell: bash
run: |
echo "ALIEN_INSTALL_TYPE=${{ matrix.alien-install-type }}" >> $GITHUB_ENV
- name: Set ALIEN_BUILD_PKG_CONFIG
if: runner.os == 'Windows' && matrix.dist == 'msys2'
run: |
echo "ALIEN_BUILD_PKG_CONFIG=PkgConfig::CommandLine" >> $GITHUB_ENV
- name: Run tests
env:
ALIEN_BUILD_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cpanm --verbose --test-only .
build-status:
runs-on: ubuntu-latest
continue-on-error: true
if: ${{ always() }}
needs: test
steps:
- uses: perlrdf/devops/github-actions/irc-notifications@main
with:
target-build-status: true
needs: ${{ toJSON(needs) }}