Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 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]
Comment thread
CodeGat marked this conversation as resolved.
Outdated
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]
Comment thread
harshula marked this conversation as resolved.
Outdated
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]
Comment thread
CodeGat marked this conversation as resolved.
Outdated
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}'