-
Notifications
You must be signed in to change notification settings - Fork 4
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
Add CI workflow #1
Comments
This is my go at encapsulating this as a flow diagram flowchart TD
subgraph "Repo: ACCESS-OM2"
pre-release-om2[Pre-Release ACCESS-OM2]
end
subgraph "Repo: ACCESS-OM2-configs"
PR["PR: Update model exe paths"]
CI["Run config on gadi"]
QReproduce{"Run reproduces?"}
QBumpMajorVersion{"Bump major version?"}
BumpMajorVersion["Increment major version
and save new truth"]
QBumpMinorVersion{"Bump minor version?"}
BumpMinorVersion["Increment minor version"]
MergeConfig["Merge PR to main"]
QNewVersion{"New version?"}
ReleaseAndDeploy["Release and deploy to gadi"]
end
subgraph "Repo: ACCESS-OM2"
release-om2[Tag and Release ACCESS-OM2]
end
pre-release-om2 --> PR
PR --> CI --> QReproduce
QReproduce -- no --> QBumpMajorVersion
QBumpMajorVersion -- yes --> BumpMajorVersion
QBumpMajorVersion -- no --> PR
QReproduce -- yes --> QBumpMinorVersion
QBumpMinorVersion -- yes --> BumpMinorVersion
QBumpMinorVersion -- no --> MergeConfig
BumpMinorVersion --> MergeConfig
BumpMajorVersion --> MergeConfig --> QNewVersion
QNewVersion -- yes --> ReleaseAndDeploy
ReleaseAndDeploy --> release-om2
|
Code for above diagram is available if hit the "copy" button if you want to hack about with it (it is mermaid.js so just put |
Under what circumstance would the run fail to reproduce, but we also don't want to bump to a new major version? What does the flow diagram mean when we are going back to |
If we wanted to change the model code so that it did reproduce. So the non-reproduction was accidental.
This shows the limitation of what I've done, because the PR to I'm not even sure how likely that is to be honest. Part of the reason for making this issue/diagram. |
The decision was made to prepend There was some discussion if development versions of the same configuration should have The design choice is to have the version of a configuration stored in a file ( It might be desirable to use
The current approach uses branch names with an underscore ( There was the possibility of using |
I agree with the |
So for now, will we continue with |
Currently with the latest version of payu, the model output directories use |
Important to make sure we're not confusing branch names with tag names. I know I was getting myself confused. |
Adding a comment regarding the latest update regarding checksums.
./testing
|- checksum
| |- <potentially multiple checksums>
| `- test_report.xml
|- performance
| |- <performance testing results>
| `- <maybe other stuff>
|- <other tests>
`- <even more tests> Instead of just Tagging @jo-basevi and @aidanheerdegen |
So this doesn't get lost in resolved conversations
|
We need a continuous integration workflow to run model tests on HPC infrastructure. This should be a reusable workflow/action as we need to add the same CI tests to other repositories.
This workflow would be triggered from pull requests that update configurations.
There would be levels of testing possible: the fastest and easiest is bit wise reproducibility testing where the model is run for a very short time and checksums in the outputs compared to checksums from a "ground truth" run.
The more time intensive testing would be running the model for longer and testing for performance degradation. Again this would involve extracting timing information from the logs and comparing against a "ground truth" run.
The mechanism for doing this was what this repo and issue is about: ACCESS-NRI/model-config-tests#83.
We also need a mechanism to update the "ground truth" when there is a known breaking change to the model.
In some cases those pull requests would be generated from new pre-release deployments.
These CI checks can't be run automatically from PRs due to possible security issues. So we either make the CI fire only on PRs to protected branches that limit who can make PRs, or we don't let the fire without an approval process.
The text was updated successfully, but these errors were encountered: