Skip to content

Conversation

ekouts
Copy link
Collaborator

@ekouts ekouts commented Aug 11, 2025

Merge the UENV and CPE pipelines.

Additional changes in the PR:

@ekouts ekouts self-assigned this Aug 11, 2025
@ekouts ekouts requested review from teojgo and jgphpc August 13, 2025 07:04
@jgphpc jgphpc requested a review from Copilot August 13, 2025 10:58
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@ekouts ekouts requested a review from gppezzi August 14, 2025 12:54
@gppezzi
Copy link
Collaborator

gppezzi commented Aug 14, 2025

For completeness, could you please clarify/document how should we define the checks and the reframe command line in order to use this PR?
In most of them you add +prgenv, but in uenv_status.py you add builtin.

@ekouts
Copy link
Collaborator Author

ekouts commented Aug 14, 2025

I added the +prgenv for tests that need some prog env to build something. The thing is that it no uenv contains this at the moment, so if we go with that we should probably add it in the prgenv-gnu envs at least.

But the uenv_status doesn't need to load on any environment, right? And I am not sure we are gaining anything by running on every env.

@ekouts
Copy link
Collaborator Author

ekouts commented Aug 14, 2025

I also added a script that will collect all the uenvs with Reframe metadata, just copying the commands we have in the uenv pipelines. @jgphpc maybe you can also have a look to see if there is a better way to do this?

@gppezzi
Copy link
Collaborator

gppezzi commented Aug 14, 2025

I added the +prgenv for tests that need some prog env to build something. The thing is that it no uenv contains this at the moment, so if we go with that we should probably add it in the prgenv-gnu envs at least.

But the uenv_status doesn't need to load on any environment, right? And I am not sure we are gaining anything by running on every env.

For sure executing uenv status once per reframe run is enough.

It is still not entirely clear to me how the tests and the reframe environment calls should look like for the different cases, I'll try to elaborate here to see if I understand the workflow correctly:

  • Reframe environment preparation
    • UENV variable is populated using list of uenvs retrieved with the script prepare_uenvs.sh
  • Test definition
    • Check should run once for every uenv available
      • Add feature +prgenv to valid_prog_environs
    • Check requires specific uenv to run
      • Add specific +prgenv_XYZ to valid_prog_environs
    • Check should be executed only once (uenv status)
      • Doesn't require any feature or reference to uenv

@ekouts ekouts merged commit 21307e1 into eth-cscs:main Aug 22, 2025
1 check passed
@ekouts ekouts deleted the merge_pipelines branch August 22, 2025 13:22
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.

3 participants