-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Spack buildcache to CPU Ubuntu builds (#85)
* Add spack buildcache to CPU builds, trying with just python for now. * Ubuntu 22.04 uses different gcc version... * Fix test stage and only build perl. * Fix test stage * Disable test stage for now. * Fix username for action. * Add back exago builds. * Trust buildcache and find externals. * Correct spack commands. * Move where mirror is set. * Move where mirror is set. * Move where mirror is set. * Build custom base image with fortran libs for use in each stage. * Fix tags and use static commit for action. * Build base image prior to matrix jobs. * Cleanup code and fix base image name. * Hard code image version. * Use latest action versions, hard code image tags for push. * Fix image_name to be lower case. * Fix image name... * Force push to registry and try build exago based on PR branch. * Update actions to get branch name within job step. * Use spack develop to configure correct re-build. * Use -e . for spack develop command * Add libstdc++ and gcc to base image. * Update concretizer config and give specific version in root spec. * Reuse dependencies in spack.yaml * Minimize spack config to fix concretizer * Get rid of spack git= syntax as it is bugged. * Attempt to fix glibc issue in base image. * Attempt to fix glibc issue in base image. * Attempt to fix glibc issue in base image. * Attempt to fix glibc issue in base image. * Attempt to fix glibc issue in base image. * Add openssh to base image. * Add documentation including demo video. * Fix broken links identified in review.
- Loading branch information
Cameron Rutherford
authored
Dec 4, 2023
1 parent
1e8ee59
commit ae5c8ac
Showing
6 changed files
with
199 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# GitHub Actions Documentation | ||
|
||
## `file_naming.yaml` | ||
|
||
Runs on push, this action runs our perl script in `buildsystem/tools/file_naming_conventions.pl` to enforce certain name restrictions defined in our developer guidelines (P003). We use one action to checkout the code, then another to install perl before running the script. | ||
|
||
## `ornl_ascent_mirror.yaml` | ||
|
||
This pushes to a GitLab at ORNL and runs CI/CD on Ascent. This also can re-build modules for testing newer versions of ExaGO and it's dependencies without needing to monitor builds by hand. | ||
|
||
## `pnnl_mirror.yaml` | ||
|
||
Similar to `ornl_ascent_mirror.yaml`, this mirrors to PNNL GitLab, but also supports Incline, Decpeption and Newell. | ||
|
||
## `pre_commit.yaml` | ||
|
||
This enforces and runs pre-commit, and automatically commits fixes to any tests that it can. Noteably applies clang formatting, and cmake formatting most often, and requires developers to either install locally, or rebase to incorporate changes. | ||
|
||
## `spack_cpu_build.yaml` | ||
|
||
Logically does the following: | ||
- Build a base image with Linux deps for things like mpi / gcc that are runtime dependencies for exago | ||
- Build binaries in ubuntu GitHub actions runner for a matrix of ExaGO configs, force pushing each time to refresh binaries | ||
- Push said binaries with the custom base image to the ghcr packages for exago | ||
|
||
This also leverages the spack public mirror binaries as well as ExaGO's GHCR binaries, to drop builds down from taking 1.5hrs down to <10 minutes!! Now the slowest part is the concretization... | ||
|
||
To pull the binaries and run, you can consult some more verbose docs: | ||
- From GitHub https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry | ||
- From Spack https://spack.readthedocs.io/en/latest/binary_caches.html#oci-docker-v2-registries-as-build-cache |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters