Add Spack CI GCC test #25
This file contains 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 | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened] | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- name: Pip install mepo | |
run: | | |
python -m pip install --upgrade pip | |
pip install mepo | |
- name: Mepo clone | |
run: | | |
mepo clone | |
- 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:compiler:[[email protected]]' | |
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 mapl-buildcache oci://ghcr.io/mathomp4/mapl-buildcache | |
spack -e spack-env mirror set --oci-username ${{ github.actor }} --oci-password "${{ secrets.BUILDCACHE_TOKEN }}" mapl-buildcache | |
spack -e spack-env mirror list | |
spack -e spack-env buildcache update-index mapl-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 -e spack-env install --add --no-check-signature --use-buildcache only \ | |
esmf gftl gftl-shared fargparse pflogger pfunit yafyaml ecbuild udunits | |
- 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 | |
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 | |