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

Gitflow for release #456

Merged
merged 27 commits into from
Mar 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
561b58d
Merge pull request #446 from Goddard-Fortran-Ecosystem/main
tclune Nov 29, 2023
5493267
Try and fix Ifort CI
mathomp4 Nov 29, 2023
501f0a9
install recommends
mathomp4 Nov 29, 2023
d6c128d
Add ls
mathomp4 Nov 29, 2023
485717e
more ls
mathomp4 Nov 29, 2023
4dfe70c
Use a find
mathomp4 Nov 29, 2023
121e9b6
Hardcode in ifort path
mathomp4 Nov 29, 2023
6c00639
Use ifx
mathomp4 Nov 30, 2023
949ff91
use ifx and icx
mathomp4 Nov 30, 2023
7872fc6
Make it like scivision
mathomp4 Nov 30, 2023
92816df
Fix command
mathomp4 Nov 30, 2023
053af8b
Don't write versions
mathomp4 Nov 30, 2023
6a96340
Change C package
mathomp4 Jan 3, 2024
bfdee99
Bring back versions
mathomp4 Jan 3, 2024
b915ce9
Bring back GNU
mathomp4 Jan 3, 2024
be501e5
Merge pull request #447 from Goddard-Fortran-Ecosystem/feature/mathom…
tclune Jan 3, 2024
a3f3093
Fixes #450 - delete obsolete documentation
tclune Feb 19, 2024
498669e
Add support for Fujitsu compiler
mathomp4 Feb 26, 2024
6fff13f
Add NVIDIA CI
mathomp4 Feb 26, 2024
a03366c
Move to nvhpc ubuntu22
mathomp4 Feb 26, 2024
3cd1b12
Add python-is-python3
mathomp4 Feb 26, 2024
fc0ba52
Merge pull request #451 from Goddard-Fortran-Ecosystem/feature/#450-o…
tclune Mar 5, 2024
1ba960f
Update ChangeLog.md
tclune Mar 5, 2024
c5f76a8
Merge pull request #455 from Goddard-Fortran-Ecosystem/fix-changelog
tclune Mar 5, 2024
95a173f
Merge branch 'develop' into feature/mathomp4/add-fujitsu
tclune Mar 5, 2024
f164724
Merge pull request #454 from Goddard-Fortran-Ecosystem/feature/mathom…
tclune Mar 5, 2024
a5c1623
Merge branch 'main' into develop
tclune Mar 6, 2024
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
126 changes: 98 additions & 28 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,11 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12]
compiler: [gfortran-9, gfortran-10, gfortran-11, gfortran-12]
os: [ubuntu-22.04, macos-11, macos-12]
compiler: [gfortran-10, gfortran-11, gfortran-12, gfortran-13]
exclude:
- os: ubuntu-20.04
compiler: gfortran-11
- os: ubuntu-20.04
compiler: gfortran-12
- os: ubuntu-22.04
compiler: gfortran-9
- os: macos-11
compiler: gfortran-9
- os: macos-12
compiler: gfortran-9
compiler: gfortran-13
- os: macos-12
compiler: gfortran-10

Expand All @@ -53,51 +45,58 @@ jobs:

name: ${{ matrix.os }} / ${{ matrix.compiler }}
steps:
- name: Install GCC 12 on Ubuntu 22.04
if: matrix.os == 'ubuntu-22.04' && matrix.compiler == 'gfortran-12'
run: |
sudo apt-get install gfortran-12 -y
- name: Compiler Versions
run: |
${FC} --version
cmake --version

- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Set all directories as git safe
run: |
git config --global --add safe.directory '*'

- name: Cache MPI
id: cache-mpi
uses: actions/cache@v3
with:
path: ~/local/openmpi
key: mpi-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}

- name: Build MPI
if: steps.cache-mpi.outputs.cache-hit != 'true'
run: |
sh ${GITHUB_WORKSPACE}/tools/ci-install-mpi.sh openmpi 4.1.4

- name: Set MPI Environment
run: |
echo "${HOME}/local/openmpi/bin" >> $GITHUB_PATH
echo "LD_LIBRARY_PATH=${HOME}/local/openmpi/lib" >> $GITHUB_ENV
echo "DYLD_LIBRARY_PATH=${HOME}/local/openmpi/lib" >> $GITHUB_ENV

- name: MPI Versions
run: |
${FC} --version
mpirun --version
mpifort --show

- name: Configure pFUnit
run: cmake -Bbuild
run: cmake -B build

- name: Build pfUnit
run: cmake --build build --parallel

- name: Build Tests
run: cmake --build build --parallel -t build-tests

- name: Run Tests
run: ctest --test-dir build --parallel 1 --output-on-failure --repeat until-pass:4 --schedule-random

- name: Archive log files on failure
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: failure()
with:
name: logfiles
Expand All @@ -108,42 +107,113 @@ jobs:
runs-on: ubuntu-20.04

env:
FC: ifort
CC: icc
FC: ifx
CC: icx

name: Intel Fortran
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Intel compilers
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Set all directories as git safe
run: |
git config --global --add safe.directory '*'

- name: Setup Intel oneAPI repository
run: |
cd /tmp
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
sudo apt install --no-install-recommends intel-oneapi-compiler-fortran intel-oneapi-mpi \
intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-mpi-devel
sudo apt-get update

- name: Install Intel oneAPI compilers
timeout-minutes: 5
run: sudo apt-get install intel-oneapi-compiler-fortran intel-oneapi-compiler-dpcpp-cpp

# optional
- name: Install Intel MPI
timeout-minutes: 5
run: sudo apt-get install intel-oneapi-mpi intel-oneapi-mpi-devel

- name: Setup Intel oneAPI environment
run: |
source /opt/intel/oneapi/setvars.sh
printenv >> $GITHUB_ENV
printenv | grep intel

- name: Versions
run: |
${FC} --version
${CC} --version
mpirun --version
cmake --version

- name: Configure pFUnit
run: cmake -B build

- name: Build pfUnit
run: cmake --build build --parallel

- name: Build Tests
run: cmake --build build --parallel -t build-tests

- name: Run Tests
run: ctest --test-dir build --parallel 1 --output-on-failure --repeat until-pass:4 --schedule-random

- name: Archive log files on failure
uses: actions/upload-artifact@v4
if: failure()
with:
name: logfiles
path: |
build/**/*.log

Nvidia:
runs-on: ubuntu-20.04
container: nvcr.io/nvidia/nvhpc:24.1-devel-cuda12.3-ubuntu22.04
env:
FC: nvfortran

name: Nvidia HPC
steps:
- name: Versions
run: |
${FC} --version
cmake --version

- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Set all directories as git safe
run: |
git config --global --add safe.directory '*'

- name: Add python-is-python3 package
run: |
apt-get update
apt-get install -y python-is-python3

- name: Configure pFUnit
run: cmake -Bbuild
run: cmake -B build

- name: Build pfUnit
run: cmake --build build --parallel

- name: Build Tests
run: cmake --build build --parallel -t build-tests

- name: Run Tests
run: ctest --test-dir build --parallel 1 --output-on-failure --repeat until-pass:4 --schedule-random

- name: Archive log files on failure
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: failure()
with:
name: logfiles
path: |
build/**/*.log

12 changes: 11 additions & 1 deletion ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Fujitsu compiler support

### Fixed

- This fixes a small CMake bug which can lead to posix_predefined.x being built in the wrong build subdirectory when CMAKE_RUNTIME_OUTPUT_DIRECTORY is set*.
- Missing implementation of `assertIsFinite_real80()`. Apparently undetected until recent attempt to port to flang.

## [4.8.0] -2023-11-29
### Changed

- Updated the CI to use Intel LLVM compilers
- Removed obsolete documentation

## [4.8.0] - 2023-11-29

### Changed

Expand Down
14 changes: 14 additions & 0 deletions cmake/Fujitsu.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
if (CMAKE_Fortran_COMPILER_ID MATCHES Fujitsu)
if (CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 4.10.0)
message(FATAL_ERROR "${CMAKE_Fortran_COMPILER_ID} version must be at least 4.10.0!")
endif ()
endif ()

# Compiler specific flags for Fujitsu Fortran compiler

set(check_all "-Nquickdbg")
set(cpp "-Cfpp")

set(CMAKE_Fortran_FLAGS_DEBUG "-O0 ${check_all}")
set(CMAKE_Fortran_FLAGS_RELEASE "-O3")
set(CMAKE_Fortran_FLAGS "-g ${cpp} -Nalloc_assign -Free")
Binary file removed documentation/pFUnit3-ReferenceManual.pdf
Binary file not shown.
Loading