Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci(compilers): ci test with ifx, trim compiler compat test matrix #2054

Draft
wants to merge 3 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 33 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -198,16 +198,22 @@ jobs:
fail-fast: false
matrix:
include:
- os: macos-12
# intel mac, release mode
- os: macos-13
debug: false
# arm mac, release mode
- os: macos-14
debug: false
# arm mac, debug mode
- os: macos-14
debug: true
# ubuntu, release mode
- os: ubuntu-22.04
debug: false
# ubuntu, debug mode
- os: ubuntu-22.04
debug: true
# windows, release mode
- os: windows-2022
debug: false
defaults:
Expand Down Expand Up @@ -251,7 +257,7 @@ jobs:
run: pixi run install

- name: Set LDFLAGS (macOS)
if: matrix.os == 'macos-14'
if: runner.os == 'macOS'
run: |
os_ver=$(sw_vers -productVersion | cut -d'.' -f1)
if (( "$os_ver" > 12 )); then
Expand Down Expand Up @@ -366,13 +372,30 @@ jobs:
- build
- smoke_test
runs-on: ${{ matrix.os }}
env:
FC: intel-classic
FC_V: "2021.7"
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-12, windows-2022]
include:
# intel mac, ifort
- os: macos-13
compiler: intel-classic
version: "2021.7"
# ubuntu, ifx
- os: ubuntu-22.04
compiler: intel
version: "2024.1"
# ubuntu, ifort
- os: ubuntu-22.04
compiler: intel-classic
version: "2021.7"
# windows, ifx
- os: windows-2022
compiler: intel
version: "2024.1"
# windows, ifort
- os: windows-2022
compiler: intel-classic
version: "2021.7"
defaults:
run:
shell: bash
Expand Down Expand Up @@ -416,11 +439,11 @@ jobs:
working-directory: modflow6
run: pixi run install

- name: Setup ${{ env.FC }} ${{ env.FC_V }}
- name: Setup ${{ matrix.compiler }} ${{ matrix.version }}
uses: fortran-lang/setup-fortran@v1
with:
compiler: ${{ env.FC }}
version: ${{ env.FC_V }}
compiler: ${{ matrix.compiler }}
version: ${{ matrix.version }}

- name: Update version files
working-directory: modflow6
Expand Down Expand Up @@ -480,7 +503,7 @@ jobs:
if: failure()
uses: actions/upload-artifact@v4
with:
name: failed-${{ matrix.os }}-${{ env.FC }}-${{ env.FC_V }}
name: failed-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.version }}
path: modflow6/autotest/.failed

- name: Test scripts
Expand Down
75 changes: 16 additions & 59 deletions .github/workflows/compilers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,61 +15,33 @@ jobs:
# combinations from https://github.com/fortran-lang/setup-fortran#runner-compatibility
include:
# gfortran
- {os: ubuntu-20.04, compiler: gcc, version: 11}
- {os: ubuntu-22.04, compiler: gcc, version: 11}
- {os: ubuntu-22.04, compiler: gcc, version: 12}
- {os: ubuntu-22.04, compiler: gcc, version: 13}
- {os: macos-11, compiler: gcc, version: 11}
- {os: macos-11, compiler: gcc, version: 12}
- {os: macos-11, compiler: gcc, version: 13}
- {os: macos-12, compiler: gcc, version: 11}
- {os: macos-12, compiler: gcc, version: 12}
- {os: macos-12, compiler: gcc, version: 13}
- {os: windows-2019, compiler: gcc, version: 11}
- {os: windows-2019, compiler: gcc, version: 12}
- {os: windows-2019, compiler: gcc, version: 13}
- {os: macos-13, compiler: gcc, version: 11}
- {os: macos-13, compiler: gcc, version: 12}
- {os: macos-13, compiler: gcc, version: 13}
- {os: macos-14, compiler: gcc, version: 11}
- {os: macos-14, compiler: gcc, version: 12}
- {os: macos-14, compiler: gcc, version: 13}
- {os: windows-2022, compiler: gcc, version: 11}
- {os: windows-2022, compiler: gcc, version: 12}
- {os: windows-2022, compiler: gcc, version: 13}
# ifx
- {os: ubuntu-20.04, compiler: intel, version: 2024.1}
- {os: ubuntu-20.04, compiler: intel, version: "2024.0"}
- {os: ubuntu-20.04, compiler: intel, version: 2023.2}
- {os: ubuntu-20.04, compiler: intel, version: 2023.1}
- {os: ubuntu-20.04, compiler: intel, version: "2023.0"}
- {os: ubuntu-20.04, compiler: intel, version: 2022.2.1}
- {os: ubuntu-20.04, compiler: intel, version: 2022.2}
- {os: ubuntu-22.04, compiler: intel, version: 2024.1}
- {os: ubuntu-22.04, compiler: intel, version: "2024.0"}
- {os: ubuntu-22.04, compiler: intel, version: 2023.2}
- {os: ubuntu-22.04, compiler: intel, version: 2023.1}
- {os: ubuntu-22.04, compiler: intel, version: "2023.0"}
- {os: ubuntu-22.04, compiler: intel, version: 2022.2.1}
- {os: ubuntu-22.04, compiler: intel, version: 2022.2}
# no ifx on mac
- {os: windows-2019, compiler: intel, version: 2024.1}
- {os: windows-2019, compiler: intel, version: "2024.0"}
- {os: windows-2019, compiler: intel, version: 2023.2}
- {os: windows-2019, compiler: intel, version: 2023.1}
- {os: windows-2019, compiler: intel, version: "2023.0"}
- {os: windows-2019, compiler: intel, version: 2022.2}
- {os: windows-2022, compiler: intel, version: 2024.1}
- {os: windows-2022, compiler: intel, version: "2024.0"}
- {os: windows-2022, compiler: intel, version: 2023.2}
- {os: windows-2022, compiler: intel, version: 2023.1}
- {os: windows-2022, compiler: intel, version: "2023.0"}
- {os: windows-2022, compiler: intel, version: 2022.2}
# ifort
- {os: ubuntu-20.04, compiler: intel-classic, version: "2021.10"}
- {os: ubuntu-20.04, compiler: intel-classic, version: 2021.9}
- {os: ubuntu-20.04, compiler: intel-classic, version: 2021.8}
- {os: ubuntu-20.04, compiler: intel-classic, version: 2021.7}
- {os: ubuntu-20.04, compiler: intel-classic, version: 2021.6}
- {os: ubuntu-20.04, compiler: intel-classic, version: 2021.5}
- {os: ubuntu-20.04, compiler: intel-classic, version: 2021.4}
- {os: ubuntu-20.04, compiler: intel-classic, version: 2021.3}
- {os: ubuntu-20.04, compiler: intel-classic, version: 2021.2}
- {os: ubuntu-20.04, compiler: intel-classic, version: 2021.1}
- {os: ubuntu-22.04, compiler: intel-classic, version: "2021.10"}
- {os: ubuntu-22.04, compiler: intel-classic, version: 2021.9}
- {os: ubuntu-22.04, compiler: intel-classic, version: 2021.8}
Expand All @@ -80,31 +52,16 @@ jobs:
- {os: ubuntu-22.04, compiler: intel-classic, version: 2021.3}
- {os: ubuntu-22.04, compiler: intel-classic, version: 2021.2}
- {os: ubuntu-22.04, compiler: intel-classic, version: 2021.1}
- {os: macos-11, compiler: intel-classic, version: "2021.10"}
- {os: macos-11, compiler: intel-classic, version: 2021.9}
- {os: macos-11, compiler: intel-classic, version: 2021.8}
- {os: macos-11, compiler: intel-classic, version: 2021.7}
- {os: macos-11, compiler: intel-classic, version: 2021.6}
- {os: macos-11, compiler: intel-classic, version: 2021.5}
- {os: macos-11, compiler: intel-classic, version: 2021.4}
- {os: macos-11, compiler: intel-classic, version: 2021.3}
- {os: macos-11, compiler: intel-classic, version: 2021.2}
- {os: macos-11, compiler: intel-classic, version: 2021.1}
- {os: macos-12, compiler: intel-classic, version: "2021.10"}
- {os: macos-12, compiler: intel-classic, version: 2021.9}
- {os: macos-12, compiler: intel-classic, version: 2021.8}
- {os: macos-12, compiler: intel-classic, version: 2021.7}
- {os: macos-12, compiler: intel-classic, version: 2021.6}
- {os: macos-12, compiler: intel-classic, version: 2021.5}
- {os: macos-12, compiler: intel-classic, version: 2021.4}
- {os: macos-12, compiler: intel-classic, version: 2021.3}
- {os: macos-12, compiler: intel-classic, version: 2021.2}
- {os: macos-12, compiler: intel-classic, version: 2021.1}
- {os: windows-2019, compiler: intel-classic, version: "2021.10"}
- {os: windows-2019, compiler: intel-classic, version: 2021.9}
- {os: windows-2019, compiler: intel-classic, version: 2021.8}
- {os: windows-2019, compiler: intel-classic, version: 2021.7}
- {os: windows-2019, compiler: intel-classic, version: 2021.6}
- {os: macos-13, compiler: intel-classic, version: "2021.10"}
- {os: macos-13, compiler: intel-classic, version: 2021.9}
- {os: macos-13, compiler: intel-classic, version: 2021.8}
- {os: macos-13, compiler: intel-classic, version: 2021.7}
- {os: macos-13, compiler: intel-classic, version: 2021.6}
- {os: macos-13, compiler: intel-classic, version: 2021.5}
- {os: macos-13, compiler: intel-classic, version: 2021.4}
- {os: macos-13, compiler: intel-classic, version: 2021.3}
- {os: macos-13, compiler: intel-classic, version: 2021.2}
- {os: macos-13, compiler: intel-classic, version: 2021.1}
- {os: windows-2022, compiler: intel-classic, version: "2021.10"}
- {os: windows-2022, compiler: intel-classic, version: 2021.9}
- {os: windows-2022, compiler: intel-classic, version: 2021.8}
Expand Down
30 changes: 22 additions & 8 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ message('The fc_id is:', fc_id)
compile_args = []
link_args = []

# Command line options for gfortran
# options for gfortran
if fc_id == 'gcc'
# General options
compile_args += [
Expand All @@ -53,11 +53,9 @@ if fc_id == 'gcc'
elif system == 'windows'
compile_args += '-D_WIN32'
endif
endif

# Command line options for ifort
if fc_id == 'intel-cl'
# windows
# options for ifort on windows
elif fc_id == 'intel-cl'
compile_args += ['/fpe:0', # Activate all floating point exceptions
'/heap-arrays:0',
'/traceback',
Expand All @@ -70,8 +68,9 @@ if fc_id == 'intel-cl'
link_args += ['/ignore:4217', # access through ddlimport might be inefficient
'/ignore:4286' # same as 4217, but more general
]

# options for ifort on linux and macos
elif fc_id == 'intel'
# linux and macOS
compile_args += ['-fpe0', # Activate all floating point exceptions
'-no-heap-arrays',
'-traceback',
Expand All @@ -81,10 +80,11 @@ elif fc_id == 'intel'
]
link_args += '-static-intel'

# Command line options for ifx
# options for ifx on windows
elif fc_id == 'intel-llvm-cl'
# windows
compile_args += ['/fpe:0', # Activate all floating point exceptions
'/fp:fast',
'/assume:nan_compares',
'/heap-arrays:0',
'/traceback',
'/fpp', # Activate preprocessing
Expand All @@ -96,6 +96,20 @@ elif fc_id == 'intel-llvm-cl'
'/ignore:4286' # same as 4217, but more general
]

# options for ifx on linux
elif fc_id == 'intel-llvm'
compile_args += [
'-fpe0', # Activate all floating point exceptions
'-fp-model fast',
'-assume nan_compares',
'-no-heap-arrays',
'-traceback',
'-diag-disable:7416', # f2008 warning
'-diag-disable:7025', # f2008 warning
'-diag-disable:5268', # Line too long
]
link_args += '-static-intel'

endif

# parallel build options
Expand Down
Loading