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

2.0 - Build Process #48

Open
pflarr opened this issue Sep 5, 2018 · 0 comments
Open

2.0 - Build Process #48

pflarr opened this issue Sep 5, 2018 · 0 comments
Milestone

Comments

@pflarr
Copy link
Collaborator

pflarr commented Sep 5, 2018

In Pav 2.0, building is expected to be done separately from running a test, unless building is the test itself.

To further this, the following changes need to be added to Pavilion in 2.0:

  • Improved build section
    • Environment variables to set
    • Modules to load (see )
    • Extra files to include in the build directory.
    • A list of commands to run to complete the build.
  • Cached builds
    • All of the above being equal (and the source and host being the same), builds should be re-usable from test run to test run.
    • The contents of the build section, hashes of the extra files, and hash of the source should be combined to form a build hash to identify identical builds.
    • Changes in environments (and how Pavilion handles loading modules) could result in builds that appear to be equivalent, but aren't. I think this will be fairly rare, however, and users should be warned of this possibility in the documentation.
  • When, and where to build.
    • Builds should live in the $PAV_ENV/builds/<build_hash> directories.
    • Builds should happen when asked for, and before any tests in a series run.
      • This will require a locking system for the build caches.

Building

Building occurs in the following steps:

  1. Gather build configuration info and generate build hash.
  2. Create build cache directory (and lock it).
  3. Copy build source and extra files into cache directory.
  4. Write a script to run the build.
    a. Setup build environment vars per config
    b. Load modules
    c. Run build commands sequence.
  5. Run the build script.
  6. Unlock cache directory.
@pflarr pflarr added this to the 2.0 milestone Sep 5, 2018
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

No branches or pull requests

1 participant