A central repository for reusable CI compilation testing workflows and containers used across ACCESS-NRI supported projects.
This repository is also responsible for building Docker images used for CI compilation testing.
This repository contains three overarching CI pipelines:
This pipeline creates Docker images that contain an install of spack
, a version of the access-nri/spack-packages
repository, and a set of independent spack env
s that contain all the dependencies for all the model components of a coupled model.
This allows the install of modified models (and model components) for quick CI testing, rather than having to install an entire dependency tree every time a PR is opened.
These Dependency Images are in the build-ci
repo.
This pipeline is called by any model repo that uses the model-build-test-ci.yml
starter workflow. It uses the images mentioned above to test the installability of modified models (usually created via PRs) quickly.
Examples of this are access-nri/cice5 and access-nri/mom5
This pipeline calls a reusable workflow (namely, validate-json.yml) that checks that a given *.json
file complies with an associated *.schema.json
file. Right now it is only being used in the build-ci
repo.
If you want to use the Model Test Pipeline go to the repo, then the Actions
tab, then the New Workflow
button. You should see a section of starter workflows by ACCESS-NRI. Simply add the Model Build Test Workflow
, and next time there is a PR on that repo, it will test for installability. Note your model must meet the requirements below
Model must meet these requirements:
- Be available as a spack package in the
access-nri/spack-packages
repo - Have an entry in
config/models.json
in this repo
There is an associated workflow_dispatch
trigger on dep-image-1-start.yml
that allows the creation of your own base-spack
and dependency
images. Just make sure that the spack-packages version
tag exists in the access-nri/spack-packages
repo.
A Web UI trigger is available.
For more of a dev-focussed look at the CI pipeline, see README-DEV.md
.