Skip to content

Legacy Reproducing PR Testing Errors

Evan Harvey edited this page Jun 1, 2022 · 1 revision

Currently all of the Pull Request testing builds are Linux GCC builds that can be easily reproduced on any RHEL 7 machine that has access to the SEMS NFS.

Steps to Replicate A Pull Request Build

1. Load the SEMS modules

source <Trilinos_home_dir>/cmake/std/sems/PullRequestGCC7.2.0TestingEnv.sh
or
source <Trilinos_home_dir>/cmake/std/sems/PullRequestIntel17.0.1TestingEnv.sh

Replace <Trilinos_home_dir> with the path to the top level directory of your Trilinos clone.

Replace X.Y with the appropriate values to indicate the version of GCC that you want to use or load the Intel version, considering the test failures you are looking into.

2. Run CMake in the top-level of your build directory

cd <your_build_dir>

cmake -C <Trilinos_home_dir>/cmake/std/PullRequestLinuxGCCX.YTestingSettings.cmake -DTrilinos_ENABLE_<all packages changed in pull request>=ON <Trilinos_home_dir>

Replace <your_build_dir> with the path to and name of your Trilinos build directory.

Replace <Trilinos_home_dir> with the path to the top level directory of your Trilinos clone.

Replace X.Y as described above.

Create an option in the style of -DTrilinos_ENABLE_<package_name>=ON for every package modified by your commits (dependencies and upstream packages will be dealt with automatically).

Note: you can optionally add -G Ninja to use the ninja make system which is considerably faster. The PR builds use this now for this reason. You can then call ninja -j X instead of make -j X (or use make NP=X with Ninja or just make with Ninja). See Building (Ninja generator).

3. Build/test/correct and re-push your code

4. Unload the modules used (optional)

module purge

Additional Information

Identifying Which Packages Were Enabled

In Section 2 above you're shown to add the -DTrilinos_ENABLE_<all packages changed in pull request>=ON, but where can you find out what packages were enabled by the pull request tester?

This can be found via the link provided by the autotester in its message on GitHub. The status message from the autotester will provide a link that looks something like CDash Test Results for PR# NNNN., if you follow that link you will arrive on the CDash page containing the results from your pull request's tests.

To find the enabled packages, you would click the values in the Configure column cells in the table, this should take you to a page that provides information about the build itself. Towards the top of this page there should be a "Configure Output" section:

Configure Output:
loading initial cache file /scratch/trilinos/workspace/trilinos-folder/Trilinos_pullrequest_intel_17.0.1/Trilinos/cmake/std/PullRequestLinuxIntelTestingSettings.cmake
loading initial cache file /scratch/trilinos/workspace/trilinos-folder/Trilinos_pullrequest_intel_17.0.1/packageEnables.cmake
-- Setting Trilinos_ENABLE_MueLu = ON

Configuring Trilinos build directory

The lines -- Setting Trilinos_ENABLE_* = ON contain the enabled packages for the testing and provide you the list of what packages should be enabled in Section 2.

FAQs

  • I'm getting the error ImportError: No module named site

    • Try unloading the SEMS python modules: module unload sems-python or module unload sems-archive-python after sourcing the PullRequest*TestingEnv.sh script
Clone this wiki locally