Skip to content

Provide option to use EESSI modules instead of init script#313

Open
casparvl wants to merge 44 commits into
EESSI:mainfrom
casparvl:make_run_reframe_loop_eessi_versions
Open

Provide option to use EESSI modules instead of init script#313
casparvl wants to merge 44 commits into
EESSI:mainfrom
casparvl:make_run_reframe_loop_eessi_versions

Conversation

@casparvl

@casparvl casparvl commented Jan 19, 2026

Copy link
Copy Markdown
Collaborator

Make run_reframe.sh use EESSI modules. Also: change how defaults are assigned in run_reframe.sh by using the ${X:-default_X} construct, which is more compact than what we currently have.

Caspar van Leeuwen added 3 commits January 19, 2026 17:31
…erpret as comma-separated). Then, run the test suite on each version. Also: change how defaults are assigned in run_reframe.sh by using the ${X:-default_X} construct, which is more compact than what we currently have
…software is tested (in which looping over EESSI_VERSION should also not be done)
@casparvl casparvl marked this pull request as draft January 21, 2026 13:22
@casparvl

casparvl commented Feb 11, 2026

Copy link
Copy Markdown
Collaborator Author

We will probably replace this by an alternative approach using ReFrame environments. Specifically, if you set:

'environs': ['default', 'EESSI-2023.06', 'EESSI-2025.06'],
...
{
            'name': 'EESSI-2023.06',
            'modules': ['EESSI/2023.06']
        },
        {
            'name': 'EESSI-2025.06',
            'modules': ['EESSI/2025.06']
        },
...
# Add each partition name as feature programmatically
# Note that we don't retain the colon to separate - only normal characters are allowed in a feature
for system in site_configuration.get('systems', []):
    for partition in system.get('partitions', []):
        features = partition.get('features', [])
        if 'name' in partition and 'name' in system:
            new_feature = f"{system['name']}{partition['name']}"
            partition['features'] = partition['features'] + [new_feature]

in the ReFrame config, and then use the upstream find_modules function to do:

from reframe.utility import find_modules
...

class EESSI_XYZ(rfm.RunOnlyRegressionTest):
...
    module_info = parameter(find_modules('SciPy-bundle'))
...
    @run_after('init', always_last=True)
    def apply_module_info(self):
        s, e, m = self.module_info
        # Get the system:partition from s, and strip the colon character as those are not allowed in features
        self.valid_systems = [f"+{s.replace(':','')}"]
        self.valid_prog_environs = [e]
        self.modules = [m]
        self.tags = {self.scale}

The regular hooks can then add additional features, and those will be repsected by reframe. E.g. if I hardcode:

self.valid_systems = [f"+{s.replace(':','')} +gpu"]

the above only runs on the subset of partitions that are marked with the "gpu" feature.

Caspar van Leeuwen and others added 10 commits March 12, 2026 16:43
… in a single run, by configuring ReFrame environments and using ReFrame's own find_modules function
…ssi_environments' into support_multiple_eessi_environments
Co-authored-by: Sam Moors <smoors@users.noreply.github.com>
@casparvl casparvl changed the title Loop over EESSI_VERSION to also enable testing 2025.06 by default Provide option to use EESSI modules instead of init script Apr 9, 2026
Comment thread CI/run_reframe.sh
Comment thread CI/run_reframe.sh Outdated
Comment thread CI/run_reframe.sh Outdated
casparvl and others added 9 commits April 29, 2026 13:51
…an still load environments for testing local modules
…ult', as we now use ReFrame environments to test over multiple versions of EESSI
…he programming environments as part of the ReFrame args first
…op_eessi_versions' into make_run_reframe_loop_eessi_versions
…ss extra options to reframe to limit to the programming environments that are specified. If both lists are emtpy, all programming environments are tested
@casparvl

Copy link
Copy Markdown
Collaborator Author

Merged #326 into this, and succesfully ran with

EESSI_TESTSUITE_URL=https://github.com/casparvl/test-suite.git EESSI_TESTSUITE_BRANCH=support_multiple_eessi_environments EESSI_CI_SYSTEM_NAME=surf_snellius ./run_reframe.sh

@casparvl casparvl marked this pull request as ready for review June 17, 2026 12:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant