ACCESS-NRI / build-ci

Reusable github workflows for CI across ACCESS-NRI projects
1 stars 1 forks source link
actions infrastructure model-release-team

build-ci

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.

Overview

This repository contains three overarching CI pipelines:

Dependency Image Pipeline (dep-image-*)

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 envs 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.

Model Test Pipeline (model-*)

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

JSON Lint Pipeline (json-*)

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.

Usage

For Model repositories

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

Requirements

Model must meet these requirements:

Create your own Dependency Images

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.

More information

For more of a dev-focussed look at the CI pipeline, see README-DEV.md.