Skip to content

Commit bb47268

Browse files
authored
Merge pull request #1046 from boegel/2023.06-software.eessi.io_ci_missing_arm
2 parents f1c0ac1 + 64679f0 commit bb47268

File tree

2 files changed

+32
-57
lines changed

2 files changed

+32
-57
lines changed

.github/workflows/test-software.eessi.io.yml

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,41 @@ on:
88
permissions:
99
contents: read # to fetch code (actions/checkout)
1010
env:
11+
EESSI_VERSION: '2023.06'
1112
EESSI_ACCELERATOR_TARGETS: |
1213
x86_64/amd/zen2:
1314
- nvidia/cc80
1415
x86_64/amd/zen3:
1516
- nvidia/cc80
1617
jobs:
1718
check_missing:
18-
runs-on: ubuntu-24.04
1919
strategy:
2020
fail-fast: false
2121
matrix:
22-
EESSI_VERSION:
23-
- 2023.06
24-
EESSI_SOFTWARE_SUBDIR_OVERRIDE:
25-
- aarch64/generic
26-
- aarch64/neoverse_n1
27-
- aarch64/neoverse_v1
28-
- x86_64/amd/zen2
29-
- x86_64/amd/zen3
30-
- x86_64/amd/zen4
31-
- x86_64/intel/haswell
32-
- x86_64/intel/sapphirerapids
33-
- x86_64/intel/skylake_avx512
34-
- x86_64/generic
22+
include:
23+
# Arm CPU targets
24+
- runs_on: ubuntu-24.04-arm
25+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/generic
26+
- runs_on: ubuntu-24.04-arm
27+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/neoverse_n1
28+
- runs_on: ubuntu-24.04-arm
29+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/neoverse_v1
30+
# x86_64 CPU targets
31+
- runs_on: ubuntu-24.04
32+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/amd/zen2
33+
- runs_on: ubuntu-24.04
34+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/amd/zen3
35+
- runs_on: ubuntu-24.04
36+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/amd/zen4
37+
- runs_on: ubuntu-24.04
38+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/haswell
39+
- runs_on: ubuntu-24.04
40+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/sapphirerapids
41+
- runs_on: ubuntu-24.04
42+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/skylake_avx512
43+
- runs_on: ubuntu-24.04
44+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/generic
45+
runs-on: ${{ matrix.runs_on }}
3546
steps:
3647
- name: Check out software-layer repository
3748
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
@@ -46,20 +57,20 @@ jobs:
4657
- name: Test check_missing_installations.sh script
4758
run: |
4859
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}
49-
source /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/bash
60+
source /cvmfs/software.eessi.io/versions/${EESSI_VERSION}/init/bash
5061
# set $EESSI_CPU_FAMILY to the CPU architecture that corresponds to $EESSI_SOFTWARE_SUBDIR_OVERRIDE (part before the first slash),
5162
# to prevent issues with checks in the Easybuild configuration that use this variable
5263
export EESSI_CPU_FAMILY=${EESSI_SOFTWARE_SUBDIR_OVERRIDE%%/*}
5364
module load EasyBuild
5465
which eb
5566
eb --version
56-
export EESSI_PREFIX=/cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}
67+
export EESSI_PREFIX=/cvmfs/software.eessi.io/versions/${EESSI_VERSION}
5768
export EESSI_OS_TYPE=linux
5869
env | grep ^EESSI | sort
5970
6071
# first check the CPU-only builds for this CPU target
61-
echo "just run check_missing_installations.sh (should use easystacks/software.eessi.io/${{matrix.EESSI_VERSION}}/eessi-${{matrix.EESSI_VERSION}}-*.yml with latest EasyBuild release)"
62-
for easystack_file in $(EESSI_VERSION=${{matrix.EESSI_VERSION}} .github/workflows/scripts/only_latest_easystacks.sh); do
72+
echo "just run check_missing_installations.sh (should use easystacks/software.eessi.io/${EESSI_VERSION}/eessi-${EESSI_VERSION}-*.yml with latest EasyBuild release)"
73+
for easystack_file in $(EESSI_VERSION=${EESSI_VERSION} .github/workflows/scripts/only_latest_easystacks.sh); do
6374
echo "check missing installations for ${easystack_file}..."
6475
./check_missing_installations.sh ${easystack_file}
6576
ec=$?
@@ -74,7 +85,7 @@ jobs:
7485
for accel in ${accelerators}; do
7586
module use ${EESSI_SOFTWARE_PATH}/accel/${accel}/modules/all
7687
echo "checking missing installations for accelerator ${accel} using modulepath: ${MODULEPATH}"
77-
for easystack_file in $(EESSI_VERSION=${{matrix.EESSI_VERSION}} ACCEL_EASYSTACKS=1 .github/workflows/scripts/only_latest_easystacks.sh); do
88+
for easystack_file in $(EESSI_VERSION=${EESSI_VERSION} ACCEL_EASYSTACKS=1 .github/workflows/scripts/only_latest_easystacks.sh); do
7889
echo "check missing installations for ${easystack_file}..."
7990
./check_missing_installations.sh ${easystack_file}
8091
ec=$?
@@ -87,14 +98,14 @@ jobs:
8798
- name: Test check_missing_installations.sh with missing package (GCC/8.3.0)
8899
run: |
89100
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}
90-
source /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/bash
101+
source /cvmfs/software.eessi.io/versions/${EESSI_VERSION}/init/bash
91102
# set $EESSI_CPU_FAMILY to the CPU architecture that corresponds to $EESSI_SOFTWARE_SUBDIR_OVERRIDE (part before the first slash),
92103
# to prevent issues with checks in the Easybuild configuration that use this variable
93104
export EESSI_CPU_FAMILY=${EESSI_SOFTWARE_SUBDIR_OVERRIDE%%/*}
94105
module load EasyBuild
95106
which eb
96107
eb --version
97-
export EESSI_PREFIX=/cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}
108+
export EESSI_PREFIX=/cvmfs/software.eessi.io/versions/${EESSI_VERSION}
98109
export EESSI_OS_TYPE=linux
99110
env | grep ^EESSI | sort
100111
# create dummy easystack file with a single entry (something that is not installed in EESSI)

eb_hooks.py

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -373,40 +373,6 @@ def parse_hook_freeimage_aarch64(ec, *args, **kwargs):
373373
print_msg("Changed toolchainopts for %s: %s", ec.name, ec['toolchainopts'])
374374

375375

376-
def parse_hook_lammps_remove_deps_for_aarch64(ec, *args, **kwargs):
377-
"""
378-
Remove x86_64 specific dependencies for the CI and missing installations to pass on aarch64
379-
"""
380-
if ec.name == 'LAMMPS':
381-
if ec.version in ('2Aug2023_update2', '29Aug2024'):
382-
if os.getenv('EESSI_CPU_FAMILY') == 'aarch64':
383-
# ScaFaCoS and tbb are not compatible with aarch64/* CPU targets,
384-
# so remove them as dependencies for LAMMPS (they're optional);
385-
# see also https://github.com/easybuilders/easybuild-easyconfigs/pull/19164 +
386-
# https://github.com/easybuilders/easybuild-easyconfigs/pull/19000;
387-
# we need this hook because we check for missing installations for all CPU targets
388-
# on an x86_64 VM in GitHub Actions (so condition based on ARCH in LAMMPS easyconfig is always true)
389-
ec['dependencies'] = [dep for dep in ec['dependencies'] if dep[0] not in ('ScaFaCoS', 'tbb',)]
390-
else:
391-
raise EasyBuildError("LAMMPS-specific hook triggered for non-LAMMPS easyconfig?!")
392-
393-
394-
def parse_hook_CP2K_remove_deps_for_aarch64(ec, *args, **kwargs):
395-
"""
396-
Remove x86_64 specific dependencies for the CI and missing installations to pass on aarch64
397-
"""
398-
if ec.name == 'CP2K' and ec.version in ('2023.1',):
399-
if os.getenv('EESSI_CPU_FAMILY') == 'aarch64':
400-
# LIBXSMM is not supported on ARM with GCC 12.2.0 and 12.3.0
401-
# See https://www.cp2k.org/dev:compiler_support
402-
# See https://github.com/easybuilders/easybuild-easyconfigs/pull/20951
403-
# we need this hook because we check for missing installations for all CPU targets
404-
# on an x86_64 VM in GitHub Actions (so condition based on ARCH in LAMMPS easyconfig is always true)
405-
ec['dependencies'] = [dep for dep in ec['dependencies'] if dep[0] not in ('libxsmm',)]
406-
else:
407-
raise EasyBuildError("CP2K-specific hook triggered for non-CP2K easyconfig?!")
408-
409-
410376
def parse_hook_zen4_module_only(ec, eprefix):
411377
"""
412378
Use --force --module-only if building a foss-2022b-based EasyConfig for Zen4.
@@ -1192,8 +1158,6 @@ def post_module_hook(self, *args, **kwargs):
11921158
'fontconfig': parse_hook_fontconfig_add_fonts,
11931159
'FreeImage': parse_hook_freeimage_aarch64,
11941160
'grpcio': parse_hook_grpcio_zlib,
1195-
'LAMMPS': parse_hook_lammps_remove_deps_for_aarch64,
1196-
'CP2K': parse_hook_CP2K_remove_deps_for_aarch64,
11971161
'OpenBLAS': parse_hook_openblas_relax_lapack_tests_num_errors,
11981162
'pybind11': parse_hook_pybind11_replace_catch2,
11991163
'Qt5': parse_hook_qt5_check_qtwebengine_disable,

0 commit comments

Comments
 (0)