Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,12 @@ jobs:
max-parallel: 1
matrix:
manifest: ${{ fromJson(needs.setup-cd.outputs.manifest) }}
uses: access-nri/build-cd/.github/workflows/cd.yml@v7
uses: access-nri/build-cd/.github/workflows/cd.yml@v8
with:
model: ${{ matrix.manifest.name }}
spack-manifest-path: ${{ matrix.manifest.path }}
# We have a custom schema for general software deployment manifests, so we specify it here
spack-manifest-schema-path: au.org.access-nri/tools/spack/environment/deployment
spack-manifest-schema-version: 1-0-0
config-versions-schema-version: 3-0-0
spack-manifest-schema-version: 2-0-0
config-versions-schema-version: 4-0-0
config-packages-schema-version: 1-0-0
# This is a non-model deployment repository, so we do not want to tag the deployment or upload to the build database
tag-deployment: false
Expand Down
13 changes: 5 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,15 +105,12 @@ jobs:
max-parallel: 1
matrix:
manifest: ${{ fromJson(needs.setup-pr.outputs.manifest) }}
uses: access-nri/build-cd/.github/workflows/ci.yml@v7
uses: access-nri/build-cd/.github/workflows/ci.yml@v8
with:
model: ${{ matrix.manifest.name }}
pr: ${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.event.issue.number }}
spack-manifest-path: ${{ matrix.manifest.path }}
# We have a custom schema for general software deployment manifests, so we specify it here
spack-manifest-schema-path: au.org.access-nri/tools/spack/environment/deployment
spack-manifest-schema-version: 1-0-0
config-versions-schema-version: 3-0-0
spack-manifest-schema-version: 2-0-0
config-versions-schema-version: 4-0-0
config-packages-schema-version: 1-0-0
permissions:
pull-requests: write
Expand All @@ -135,7 +132,7 @@ jobs:
max-parallel: 1
matrix:
manifest: ${{ fromJson(needs.setup-pr.outputs.manifest) }}
uses: access-nri/build-cd/.github/workflows/ci-closed.yml@v7
uses: access-nri/build-cd/.github/workflows/ci-closed.yml@v8
with:
root-sbd: ${{ matrix.manifest.name }}
spack-manifest-path: ${{ matrix.manifest.path }}
secrets: inherit
29 changes: 20 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,41 +9,52 @@ Deployment is on to HPC targets, in this case gadi@NCI, utilising the [build-cd]
## Supported tools

### fre-nctools

[FRE-NCtools](https://github.com/NOAA-GFDL/FRE-NCtools) is a collection of tools for creating grids and mosaics commonly used in climate and weather models, the remapping of data among grids, and the creation and manipulation of netCDF files.

### mppnccombine-fast

[mppnccombine-fast](https://github.com/ACCESS-NRI/mppnccombine-fast) is an accelerated version of the mppnccombine post-processing tool for MOM.

### babeltrace2

[babeltrace2](https://github.com/efficios/babeltrace) is a CTF (Common Trace Format) trace processing library that provides both a CLI and Python bindings (bt2). It is a required dependency for [esmf-trace](https://github.com/ACCESS-NRI/esmf-trace), which is used to extract and visualise runtime profiling data from ESMF/NUOPC-based configurations.

### esmf
[esmf](https://github.com/esmf-org/esmf) is a suite of software tools for developing high-performance, multi-component Earth science modeling applications.

[esmf](https://github.com/esmf-org/esmf) is a suite of software tools for developing high-performance, multi-component Earth science modeling applications.

## How to use

**Requirements**: you must be a member of [`vk83`](https://my.nci.org.au/mancini/project/vk83).

The software is accessible through the environment module system on `gadi`, e.g.
```

```sh
module use /g/data/vk83/modules
```

To discover what tools and versions are available:
```

```sh
module avail model-tools
```

```sh
or a specific tool
```

```sh
module avail model-tools/fre-nctools
```

```sh
It also works without the `model-tools` namespace:
```

```sh
module avail fre-nctools
```

```sh
To load the most recent version of `fre-nctools`:
```

```sh
module load model-tools/fre-nctools
```

Expand Down
26 changes: 20 additions & 6 deletions babeltrace2/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,34 @@
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
definitions:
# _name and _version are reserved definitions that inform build-cd deployments, and have no effect otherwise
- _name: [babeltrace2]
- _version: [2.1.2-1]
specs:
- babeltrace2@2.1.2
- babeltrace2@2.1.2
packages:
all:
# Compilers
c:
require:
- '%intel@2021.10.0'
- intel-oneapi-compilers-classic@2021.10.0

cxx:
require:
- intel-oneapi-compilers-classic@2021.10.0

fortran:
require:
- intel-oneapi-compilers-classic@2021.10.0

view: true
concretizer:
unify: true
modules:
default:
tcl:
include:
- babeltrace2
- babeltrace2
projections:
babeltrace2: 'model-tools/{name}/2.1.2'

# build-cd will inject the _version into this projection
babeltrace2: 'model-tools/{name}'
6 changes: 3 additions & 3 deletions config/versions.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://raw.githubusercontent.com/ACCESS-NRI/schema/main/au.org.access-nri/model/deployment/config/versions/3-0-0.json",
"spack": "0.22",
"spack-packages": "2025.09.004"
"$schema": "https://raw.githubusercontent.com/ACCESS-NRI/schema/main/au.org.access-nri/model/deployment/config/versions/4-0-0.json",
"spack": "1.1",
"access-spack-packages": "2026.02.002"
}
55 changes: 35 additions & 20 deletions esmf/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,49 +3,64 @@
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
definitions:
# _name and _version are reserved definitions that inform build-cd deployments, and have no effect otherwise
- _name: [esmf]
- _version: [v8.7.0-1]
specs:
- esmf@git.v8.7.0
- esmf@git.v8.7.0
packages:
parallelio:
require:
- '@2.6.2+pnetcdf'
- '@2.6.2'
- '+pnetcdf'
netcdf-c:
require:
- '@4.9.2 build_system=cmake build_type=RelWithDebInfo'
- '@4.9.2'
- 'build_system=cmake build_type=RelWithDebInfo'
netcdf-fortran:
require:
- '@4.6.1'
- '@4.6.1'
fms:
require:
- '@git.2024.03 precision=64 +large_file ~gfs_phys ~quad_precision ~openmp'
- '@git.2024.03'
- 'precision=64 +large_file ~gfs_phys ~quad_precision ~openmp'
fortranxml:
require:
- '@4.1.2'
- '@4.1.2'
openmpi:
require:
- '@4.1.7'
gcc-runtime:
- '@4.1.7'

# Compilers
c:
require:
- '%gcc'
libiconv:
- intel-oneapi-compilers-classic@2021.10.0

cxx:
require:
- '%gcc'
- intel-oneapi-compilers-classic@2021.10.0

fortran:
require:
- intel-oneapi-compilers-classic@2021.10.0

all:
require:
- '%intel@2021.10.0'
- 'target=x86_64_v4'
- 'target=x86_64_v4'
view: true
concretizer:
unify: true
modules:
default:
tcl:
include:
- esmf
- parallelio
- netcdf-fortran
- netcdf-c
- fms
- fortranxml
- esmf
- parallelio
- netcdf-fortran
- netcdf-c
- fms
- fortranxml
projections:
esmf: 'model-tools/{name}/v8.7.0'
# build-cd will inject the _version into this projection
esmf: 'model-tools/{name}'
31 changes: 23 additions & 8 deletions fre-nctools/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,40 @@
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
definitions:
# _name and _version are reserved definitions that inform build-cd deployments, and have no effect otherwise
- _name: [fre-nctools]
- _version: [2024.05-1]
specs:
- fre-nctools@2024.05-1
- fre-nctools@2024.05-1
packages:
fre-nctools:
require:
- '%intel@2021.10.0'
netcdf-c:
require:
- '@4.9.2'
- '@4.9.2'
netcdf-fortran:
require:
- '@4.6.1'
- '@4.6.1'

# Compilers
c:
require:
- intel-oneapi-compilers-classic@2021.10.0

cxx:
require:
- intel-oneapi-compilers-classic@2021.10.0

fortran:
require:
- intel-oneapi-compilers-classic@2021.10.0
view: true
concretizer:
unify: true
modules:
default:
tcl:
include:
- fre-nctools
- fre-nctools
projections:
fre-nctools: 'model-tools/{name}/2024.05-1'
# build-cd will inject the _version into this projection
fre-nctools: 'model-tools/{name}'
25 changes: 20 additions & 5 deletions mppnccombine-fast/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,12 @@
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
definitions:
# _name and _version are reserved definitions that inform build-cd deployments, and have no effect otherwise
- _name: [mppnccombine-fast]
- _version: [2025.07.000-1]
specs:
- mppnccombine-fast@2025.07.000
- mppnccombine-fast@2025.07.000
packages:
netcdf-c:
require:
Expand All @@ -15,16 +19,27 @@ spack:
openmpi:
require:
- '@5.0.5'
all:

# Compilers
c:
require:
- '%intel@2021.10.0'
- intel-oneapi-compilers-classic@2021.10.0

cxx:
require:
- intel-oneapi-compilers-classic@2021.10.0

fortran:
require:
- intel-oneapi-compilers-classic@2021.10.0
view: true
concretizer:
unify: true
modules:
default:
tcl:
include:
- mppnccombine-fast
- mppnccombine-fast
projections:
mppnccombine-fast: 'model-tools/{name}/2025.07.000'
# build-cd will inject the _version into this projection
mppnccombine-fast: 'model-tools/{name}'