Skip to content

Commit 0ca63e3

Browse files
authored
[no ci]Infra Update v8: spack v1 Support (#19)
* Update to spack v1.1 * Added reserved definitions with build numbers * Updated compiler specification
1 parent cf8e6ee commit 0ca63e3

8 files changed

Lines changed: 129 additions & 64 deletions

File tree

.github/workflows/cd.yml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,12 @@ jobs:
6363
max-parallel: 1
6464
matrix:
6565
manifest: ${{ fromJson(needs.setup-cd.outputs.manifest) }}
66-
uses: access-nri/build-cd/.github/workflows/cd.yml@v7
66+
uses: access-nri/build-cd/.github/workflows/cd.yml@v8
6767
with:
6868
model: ${{ matrix.manifest.name }}
6969
spack-manifest-path: ${{ matrix.manifest.path }}
70-
# We have a custom schema for general software deployment manifests, so we specify it here
71-
spack-manifest-schema-path: au.org.access-nri/tools/spack/environment/deployment
72-
spack-manifest-schema-version: 1-0-0
73-
config-versions-schema-version: 3-0-0
70+
spack-manifest-schema-version: 2-0-0
71+
config-versions-schema-version: 4-0-0
7472
config-packages-schema-version: 1-0-0
7573
# This is a non-model deployment repository, so we do not want to tag the deployment or upload to the build database
7674
tag-deployment: false

.github/workflows/ci.yml

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,12 @@ jobs:
105105
max-parallel: 1
106106
matrix:
107107
manifest: ${{ fromJson(needs.setup-pr.outputs.manifest) }}
108-
uses: access-nri/build-cd/.github/workflows/ci.yml@v7
108+
uses: access-nri/build-cd/.github/workflows/ci.yml@v8
109109
with:
110110
model: ${{ matrix.manifest.name }}
111-
pr: ${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.event.issue.number }}
112111
spack-manifest-path: ${{ matrix.manifest.path }}
113-
# We have a custom schema for general software deployment manifests, so we specify it here
114-
spack-manifest-schema-path: au.org.access-nri/tools/spack/environment/deployment
115-
spack-manifest-schema-version: 1-0-0
116-
config-versions-schema-version: 3-0-0
112+
spack-manifest-schema-version: 2-0-0
113+
config-versions-schema-version: 4-0-0
117114
config-packages-schema-version: 1-0-0
118115
permissions:
119116
pull-requests: write
@@ -135,7 +132,7 @@ jobs:
135132
max-parallel: 1
136133
matrix:
137134
manifest: ${{ fromJson(needs.setup-pr.outputs.manifest) }}
138-
uses: access-nri/build-cd/.github/workflows/ci-closed.yml@v7
135+
uses: access-nri/build-cd/.github/workflows/ci-closed.yml@v8
139136
with:
140-
root-sbd: ${{ matrix.manifest.name }}
137+
spack-manifest-path: ${{ matrix.manifest.path }}
141138
secrets: inherit

README.md

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,41 +9,52 @@ Deployment is on to HPC targets, in this case gadi@NCI, utilising the [build-cd]
99
## Supported tools
1010

1111
### fre-nctools
12+
1213
[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.
1314

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

1719
### babeltrace2
20+
1821
[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.
1922

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

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

2427
## How to use
2528

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

2831
The software is accessible through the environment module system on `gadi`, e.g.
29-
```
32+
33+
```sh
3034
module use /g/data/vk83/modules
3135
```
3236

3337
To discover what tools and versions are available:
34-
```
38+
39+
```sh
3540
module avail model-tools
36-
```
41+
42+
```sh
3743
or a specific tool
38-
```
44+
45+
```sh
3946
module avail model-tools/fre-nctools
40-
```
47+
48+
```sh
4149
It also works without the `model-tools` namespace:
42-
```
50+
51+
```sh
4352
module avail fre-nctools
44-
```
53+
54+
```sh
4555
To load the most recent version of `fre-nctools`:
46-
```
56+
57+
```sh
4758
module load model-tools/fre-nctools
4859
```
4960

babeltrace2/spack.yaml

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,34 @@
33
# It describes a set of packages to be installed, along with
44
# configuration settings.
55
spack:
6+
definitions:
7+
# _name and _version are reserved definitions that inform build-cd deployments, and have no effect otherwise
8+
- _name: [babeltrace2]
9+
- _version: [2.1.2-1]
610
specs:
7-
- babeltrace2@2.1.2
11+
- babeltrace2@2.1.2
812
packages:
9-
all:
13+
# Compilers
14+
c:
1015
require:
11-
- '%intel@2021.10.0'
16+
- intel-oneapi-compilers-classic@2021.10.0
17+
18+
cxx:
19+
require:
20+
- intel-oneapi-compilers-classic@2021.10.0
21+
22+
fortran:
23+
require:
24+
- intel-oneapi-compilers-classic@2021.10.0
25+
1226
view: true
1327
concretizer:
1428
unify: true
1529
modules:
1630
default:
1731
tcl:
1832
include:
19-
- babeltrace2
33+
- babeltrace2
2034
projections:
21-
babeltrace2: 'model-tools/{name}/2.1.2'
22-
35+
# build-cd will inject the _version into this projection
36+
babeltrace2: 'model-tools/{name}'

config/versions.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"$schema": "https://raw.githubusercontent.com/ACCESS-NRI/schema/main/au.org.access-nri/model/deployment/config/versions/3-0-0.json",
3-
"spack": "0.22",
4-
"spack-packages": "2025.09.004"
2+
"$schema": "https://raw.githubusercontent.com/ACCESS-NRI/schema/main/au.org.access-nri/model/deployment/config/versions/4-0-0.json",
3+
"spack": "1.1",
4+
"access-spack-packages": "2026.02.002"
55
}

esmf/spack.yaml

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,49 +3,64 @@
33
# It describes a set of packages to be installed, along with
44
# configuration settings.
55
spack:
6+
definitions:
7+
# _name and _version are reserved definitions that inform build-cd deployments, and have no effect otherwise
8+
- _name: [esmf]
9+
- _version: [v8.7.0-1]
610
specs:
7-
- esmf@git.v8.7.0
11+
- esmf@git.v8.7.0
812
packages:
913
parallelio:
1014
require:
11-
- '@2.6.2+pnetcdf'
15+
- '@2.6.2'
16+
- '+pnetcdf'
1217
netcdf-c:
1318
require:
14-
- '@4.9.2 build_system=cmake build_type=RelWithDebInfo'
19+
- '@4.9.2'
20+
- 'build_system=cmake build_type=RelWithDebInfo'
1521
netcdf-fortran:
1622
require:
17-
- '@4.6.1'
23+
- '@4.6.1'
1824
fms:
1925
require:
20-
- '@git.2024.03 precision=64 +large_file ~gfs_phys ~quad_precision ~openmp'
26+
- '@git.2024.03'
27+
- 'precision=64 +large_file ~gfs_phys ~quad_precision ~openmp'
2128
fortranxml:
2229
require:
23-
- '@4.1.2'
30+
- '@4.1.2'
2431
openmpi:
2532
require:
26-
- '@4.1.7'
27-
gcc-runtime:
33+
- '@4.1.7'
34+
35+
# Compilers
36+
c:
2837
require:
29-
- '%gcc'
30-
libiconv:
38+
- intel-oneapi-compilers-classic@2021.10.0
39+
40+
cxx:
3141
require:
32-
- '%gcc'
42+
- intel-oneapi-compilers-classic@2021.10.0
43+
44+
fortran:
45+
require:
46+
- intel-oneapi-compilers-classic@2021.10.0
47+
3348
all:
3449
require:
35-
- '%intel@2021.10.0'
36-
- 'target=x86_64_v4'
50+
- 'target=x86_64_v4'
3751
view: true
3852
concretizer:
3953
unify: true
4054
modules:
4155
default:
4256
tcl:
4357
include:
44-
- esmf
45-
- parallelio
46-
- netcdf-fortran
47-
- netcdf-c
48-
- fms
49-
- fortranxml
58+
- esmf
59+
- parallelio
60+
- netcdf-fortran
61+
- netcdf-c
62+
- fms
63+
- fortranxml
5064
projections:
51-
esmf: 'model-tools/{name}/v8.7.0'
65+
# build-cd will inject the _version into this projection
66+
esmf: 'model-tools/{name}'

fre-nctools/spack.yaml

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,40 @@
33
# It describes a set of packages to be installed, along with
44
# configuration settings.
55
spack:
6+
definitions:
7+
# _name and _version are reserved definitions that inform build-cd deployments, and have no effect otherwise
8+
- _name: [fre-nctools]
9+
- _version: [2024.05-1]
610
specs:
7-
- fre-nctools@2024.05-1
11+
- fre-nctools@2024.05-1
812
packages:
9-
fre-nctools:
10-
require:
11-
- '%intel@2021.10.0'
1213
netcdf-c:
1314
require:
14-
- '@4.9.2'
15+
- '@4.9.2'
1516
netcdf-fortran:
1617
require:
17-
- '@4.6.1'
18+
- '@4.6.1'
19+
20+
# Compilers
21+
c:
22+
require:
23+
- intel-oneapi-compilers-classic@2021.10.0
24+
25+
cxx:
26+
require:
27+
- intel-oneapi-compilers-classic@2021.10.0
28+
29+
fortran:
30+
require:
31+
- intel-oneapi-compilers-classic@2021.10.0
1832
view: true
1933
concretizer:
2034
unify: true
2135
modules:
2236
default:
2337
tcl:
2438
include:
25-
- fre-nctools
39+
- fre-nctools
2640
projections:
27-
fre-nctools: 'model-tools/{name}/2024.05-1'
41+
# build-cd will inject the _version into this projection
42+
fre-nctools: 'model-tools/{name}'

mppnccombine-fast/spack.yaml

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@
33
# It describes a set of packages to be installed, along with
44
# configuration settings.
55
spack:
6+
definitions:
7+
# _name and _version are reserved definitions that inform build-cd deployments, and have no effect otherwise
8+
- _name: [mppnccombine-fast]
9+
- _version: [2025.07.000-1]
610
specs:
7-
- mppnccombine-fast@2025.07.000
11+
- mppnccombine-fast@2025.07.000
812
packages:
913
netcdf-c:
1014
require:
@@ -15,16 +19,27 @@ spack:
1519
openmpi:
1620
require:
1721
- '@5.0.5'
18-
all:
22+
23+
# Compilers
24+
c:
1925
require:
20-
- '%intel@2021.10.0'
26+
- intel-oneapi-compilers-classic@2021.10.0
27+
28+
cxx:
29+
require:
30+
- intel-oneapi-compilers-classic@2021.10.0
31+
32+
fortran:
33+
require:
34+
- intel-oneapi-compilers-classic@2021.10.0
2135
view: true
2236
concretizer:
2337
unify: true
2438
modules:
2539
default:
2640
tcl:
2741
include:
28-
- mppnccombine-fast
42+
- mppnccombine-fast
2943
projections:
30-
mppnccombine-fast: 'model-tools/{name}/2025.07.000'
44+
# build-cd will inject the _version into this projection
45+
mppnccombine-fast: 'model-tools/{name}'

0 commit comments

Comments
 (0)