Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Framework: Trilinos Installation Testing #7383

Closed
7 tasks
william76 opened this issue May 15, 2020 · 3 comments
Closed
7 tasks

Framework: Trilinos Installation Testing #7383

william76 opened this issue May 15, 2020 · 3 comments
Assignees
Labels
Framework tasks Framework tasks (used internally by Framework team) PA: Framework Issues that fall under the Trilinos Framework Product Area priority: Deferred Marks an issue as deferred to a later time. type: enhancement Issue is an enhancement, not a bug

Comments

@william76
Copy link
Contributor

@trilinos/framework

This is a top-level tracking issue for Trilinos installation testing. This topic has been posted a few times before but it keeps getting down prioritized... but we also haven't really ever broken the overall task into sub-tasks that may be easier to work on and track.

Tasks

This is an initial broad-brush list of tasks that I think we probably need for this. It will surely evolve over time.

Details

Add Installation Testing Support to CMake

Most of the infrastructure should already be in place. See https://github.com/TriBITSPub/TriBITS/tree/5027-enable-installation-testing for more information on this. With luck, we just need to verify that installation testing works w/in TriBiTS.

We may need to re-learn what we need to do to use this and there may be some modifications necessary in the CMakeLists.txt files in Trilinos packages to make everything work properly.

Modify PR Driver Scripts

There are two sequences that we will generally need to support:

Install Trilinos

  1. Configure without tests
  2. Build Trilinos
  3. Install Trilinos

Test Installed Trilinos

  1. Configure with tests against installed Trilinos
  2. Build Tests
  3. Run Tests

Develop Jenkins jobs to Perform Installation Tests

We'll need to create the necessary Jenkins infrastructure to run these test
sequences. Without getting too far down into the weeds, I see two main ways we might implement this on our Jenkins server...

Single Jenkins Job w/ 2 Stages

This may be the simplest one to do from a Jenkins perspective since everything
is in a single self-contained Jenkins job.

Two Jenkins Jobs, triggered in sequence

This will be more complicated because:

  1. We can't guarantee that two jobs would run on the same node in the build farm using a trilinos-any tag.
  2. Even if the jobs are on the same node we can't necessarily guarantee the test job would share the same workspace.

This approach could offer some additional optimizations that we don't currently have in our testing though since notionally we should need fewer cores to run the tests than we do to build Trilinos. It may be easier to schedule the test phase than it is for the build phase.

Passing the 'installed' Trilinos from one job to another may be tricky. I think we can do it via 'artifacts' in Jenkins, but I haven't tested it personally yet.

Verify Proper CDash Reporting

CDash may track these properly but we'll need to verify once we have Jenkins jobs working that results get reported to CDash in some reasonable manner that's traceable.

Add Packages to Installation Testing

This is probably the big task once all the infrastructure is in place. We will initially start with just one package to build out the infrastructutre. I would recommend using Teuchos for this.

Once the infrastructure is in place, we'll need to pull in packages one by one and make sure they are doing the right thing in each phase:

  1. Package must install all the required files, headers, etc.
  2. Package should not install its tests during the install phase
    • Unless tests are enabled too?
  3. Package should use the installed library and headers, but the tests should come from the test directory(s) in the source when running the test phase against an installed Trilinos.

Related Issues

The following issues look related to this topic. We may be able to close out some of them if they're superseded by this. Linking to them from here so they can be easily found (and closed when we get installation testing up and running).

FYI @jwillenbring

@william76 william76 added type: enhancement Issue is an enhancement, not a bug Framework tasks Framework tasks (used internally by Framework team) PA: Framework Issues that fall under the Trilinos Framework Product Area labels May 15, 2020
@william76 william76 self-assigned this May 15, 2020
@bartlettroscoe
Copy link
Member

With luck, we just need to verify that installation testing works w/in TriBiTS.

@william76, it is verified. There is an automated TriBITS test TriBITS_TribitsExampleProject_ALL_ST_NoFortran_enable_installation_testing showing that it works. See here.

@bartlettroscoe
Copy link
Member

Related to:

  • SEPW-213
  • SEPW-214

@william76 william76 added the priority: Deferred Marks an issue as deferred to a later time. label Jun 28, 2021
@wadeburgess
Copy link

Migrated to Jira, so closing this issue in GitHub.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Framework tasks Framework tasks (used internally by Framework team) PA: Framework Issues that fall under the Trilinos Framework Product Area priority: Deferred Marks an issue as deferred to a later time. type: enhancement Issue is an enhancement, not a bug
Projects
None yet
Development

No branches or pull requests

3 participants