Conversation
|
Consider a EDIT: Done in b9ec8e0 |
CodeGat
left a comment
There was a problem hiding this comment.
The final question is what manifests do we test for spack-config (a question that I hope to get @harshula s opinion on)?
I see there being a few options, from least to most coverage:
-
A representative subset of manifests across all our models/components, stored locally in
spack-config. These can go out of sync with MCRs/access-spack-packages as they are only a representative subset to make sure nothing is super broken regarding configuration. -
A representative subset of manifests from
access-spack-packages. These are synced up with changes fromaccess-spack-packages, through the proposedinputs.spack-manifest-repositoryforbuild-ci(see ACCESS-NRI/build-ci#265) -
A representative subset of manifests from MCRs. These will be synced up with changes from their respective MCRs, through the proposed
inputs.spack-manifest-repositoryforbuild-ci. -
All manifests defined in
access-spack-packages. These are synced up with changes fromaccess-spack-packages, as above. This could potentially take a long time, especially if changes incommon*affect multiple major versions ofspack. -
All manifests defined in their respective MCRs. These are synced up with changes from their respective MCRs, as above. This could potentially take a REALLY long time, especially if changes in
common*affect multiple major versions ofspack, but we would be certain that all the components would work, based on their own tests.
|
After a conversation with @aidanheerdegen - we'll go with the simplest for now (a representative set of manifests stored in |
a7911a8 to
8b60b8b
Compare
|
This is suitably tested, but will remain drafted until ACCESS-NRI/build-ci#268 is solved, just in case it requires a rework of the GitHub-hosted part of this workflow. |
Closes #86
Background
spack-configis the final piece of the puzzle to be tested bybuild-ci.This PR takes inspiration from https://github.com/ACCESS-NRI/access-spack-packages/blob/main/.github/workflows/ci.yml for the general structure of the workflow.
Essentially, we allow two triggers:
pull_requestandworkflow_dispatch, which function in the following ways:pull_requestWhen a PR to
spack-configis made, if there are changes to thecommon*directories (which are proper files symlinked to in thev*directories), we find all thev*/ci-*directories that have files that symlink to the changed files. This is our set of versions to test thecommon*changes against - using spack manifests that we source from this repository.Note
Since this is using
build-ci(which has no connection to supercomputers) we can only testci-upstream/ci-runnerspack configurations - notgadiorsetonixIf a spack configuration to be tested is for the
ci-upstream, we use GitHub-hosted runners, otherwise we use self-hosted, as upstream images don't require the custom volumes that the runner images do.workflow_dispatchVia the Web UI, one can choose the versions of
spack/spack-config/builtin-spack-packages/access-spack-packages, as well as a list of configuration directories such asv1.1/ci-runner, and run the tests. This can be good for testing specific combinations.The PR
ci.yml, that runs on PRs or through the Web UITesting
PR Trigger
Tested via #96 - works as expected. Note, the errors are because of ACCESS-NRI/build-ci#268, which will be addressed separately.
Limitations
At the moment, since we only look for changed files inPotentially solved in b9ec8e0common*, symlinks that have been added to a configuration directory won't be found - a change tocommon*must happen first.There is potential for some duplication across manifests (see Investigation: CentralizeWe have the ability to source manifests from other repositories now, but we will start by sourcing manifests locally.build-ciManifests build-ci#264) so we need to decide where we source our manifests