name: perl
on:
  push:
    branches:
      - '*'
    tags-ignore:
      - '*'
  pull_request:
  create:
jobs:
  notify:
    runs-on: ubuntu-latest
    continue-on-error: true
    if: ${{ always() }}
    steps:
      - uses: PDLPorters/devops/github-actions/irc-notifications@master
        with:
          repository_owner: 'mvgrimes'
          target-notifications: true
  ci:
    runs-on: ${{ matrix.os }}
    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest]
        perl-version: ['5.10', '5.14', '5.20']
        include:
          - perl-version: '5.30'
            os: ubuntu-latest
            release-test: true
            coverage: true
          #- perl-version: '5.30'
          #  os: windows-latest
          - perl-version: '5.30'
            os: macos-11
    steps:
      - uses: actions/checkout@v2
      - name: 'ci-dist: target-setup-perl'
        uses: PDLPorters/devops/github-actions/ci-dist@master
        with:
          target-setup-perl: true
          perl-version: ${{ matrix.perl-version }}
      - name: Install PDL dependencies
        uses: PDLPorters/devops/github-actions/install-dep-pdl-dep@master
      - name: Install LAPACK
        uses: PDLPorters/devops/github-actions/install-dep-lapack@master
      - name: 'ci-dist: target-all'
        uses: PDLPorters/devops/github-actions/ci-dist@master
        with:
          target-setup-perl: false
          target-install-dist-perl-deps: true
          dist-perl-deps-configure: PDL ExtUtils::F77
          target-test-release-testing: true
          target-test: true
          test-enable-release-testing: ${{ matrix.release-test }}
          test-enable-coverage: ${{ matrix.coverage }}
          github-token: ${{ secrets.GITHUB_TOKEN }}

  build-status:
    runs-on: ubuntu-latest
    continue-on-error: true
    if: ${{ always() }}
    needs: [ 'ci' ]
    steps:
      - uses: PDLPorters/devops/github-actions/irc-notifications@master
        with:
          repository_owner: 'mvgrimes'
          target-build-status: true
          needs: ${{ toJSON(needs) }}
