Testing GCC 15 CI #578
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Spack CI GCC Build | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened] | |
# Do not run if the only files changed cannot affect the build | |
paths-ignore: | |
- "**.md" | |
- "**.pro" | |
- "**.sh" | |
- "**.perl" | |
- ".github/CODEOWNERS" | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
jobs: | |
build: | |
name: Spack CI GCC Build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
filter: blob:none | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.13' | |
- name: Pip install mepo | |
run: | | |
python -m pip install --upgrade pip | |
pip install mepo | |
- name: Mepo clone | |
run: | | |
mepo clone --partial blobless | |
- name: Set up Spack | |
uses: spack/setup-spack@v2 | |
with: | |
ref: develop # Spack version (examples: develop, releases/v0.21) | |
color: true # Force color output (SPACK_COLOR=always) | |
path: spack # Where to clone Spack | |
buildcache: false # Do not use the spack buildcache | |
- name: Find compilers | |
shell: spack-bash {0} | |
run: | | |
spack compiler find | |
- name: Set default compiler and target | |
shell: spack-bash {0} | |
run: | | |
spack config add 'packages:all:require:target=x86_64_v3' | |
- name: Create Spack environment | |
shell: spack-bash {0} | |
run: | | |
spack env create spack-env | |
spack env activate spack-env | |
- name: Login | |
shell: spack-bash {0} | |
run: | | |
spack -e spack-env mirror add geos-buildcache oci://ghcr.io/GEOS-ESM/geos-buildcache | |
spack -e spack-env mirror set --oci-username ${{ github.actor }} --oci-password "${{ secrets.BUILDCACHE_TOKEN }}" geos-buildcache | |
spack -e spack-env mirror list | |
spack -e spack-env buildcache update-index geos-buildcache | |
spack -e spack-env buildcache list --allarch | |
- name: Concretize | |
shell: spack-bash {0} | |
run: | | |
spack -e spack-env concretize | |
- name: Install | |
shell: spack-bash {0} | |
run: | | |
spack clean -m | |
spack -e spack-env install --add --no-check-signature --use-buildcache only \ | |
esmf gftl gftl-shared fargparse pflogger pfunit yafyaml ecbuild udunits openblas | |
- name: Build with Cmake | |
shell: spack-bash {0} | |
run: | | |
spack env activate spack-env | |
spack load \ | |
esmf gftl gftl-shared fargparse pflogger pfunit yafyaml ecbuild udunits openblas | |
spack find --loaded | |
FC=gfortran-14 CC=gcc-14 CXX=g++-14 | |
cmake -B build -S . -DCMAKE_INSTALL_PREFIX=$PWD/install -DCMAKE_BUILD_TYPE=Debug -DUSE_F2PY=OFF -DCMAKE_Fortran_COMPILER=${FC} -DCMAKE_C_COMPILER=${CC} -DCMAKE_CXX_COMPILER=${CXX} | |
cmake --build build -j 4 | |
cmake --install build | |
cd build | |
make -j4 tests | |