Skip to content

Commit 16fc6c6

Browse files
committed
get-spack-manifest: call the getter.py script
1 parent ee72d1b commit 16fc6c6

1 file changed

Lines changed: 27 additions & 35 deletions

File tree

.github/actions/get-spack-manifest/action.yml

Lines changed: 27 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -18,43 +18,35 @@ outputs:
1818
runs:
1919
using: composite
2020
steps:
21-
- name: Get reserved definitions
22-
id: defs
21+
- name: Clone build-cd script location
22+
uses: actions/checkout@v4
23+
with:
24+
repository: access-nri/build-cd
25+
path: ${{ github.workspace }}/getter-script
26+
27+
- name: Get Current Directory
28+
id: script
29+
# We need to store the current working directory so we can re-construct the inputs.spack-manifest-path, as we run
30+
# the script from the build-cd directory
2331
shell: bash
24-
# Converts an array of spack definitions into a simpler object of
25-
# only reserved definitions and their values, for later processing.
26-
# From:
27-
# spack:
28-
# definitions:
29-
# - _name: [test-model]
30-
# - _version: [1.0.0]
31-
# - compilers: [gcc@10.2.0, intel@2025.10.0]
32-
# To:
33-
# _name: test-model
34-
# _version: 1.0.0
3532
run: |
36-
reserved_definitions=$(yq '.spack.definitions[] | to_entries[] | select(.key == "_*") | {(.key): (.value[0])}' ${{ inputs.spack-manifest-path }})
37-
38-
if [ -z "$reserved_definitions" ]; then
39-
echo "::error::No reserved definitions found in spack manifest - some of them are required for deployment"
40-
exit 1
41-
fi
33+
pwd=$(pwd)
34+
echo "Action PWD: $pwd"
35+
echo "pwd=$pwd" >> $GITHUB_OUTPUT
4236
43-
name=$(yq "._name" <<< "$reserved_definitions")
44-
if [["$name" == "null" ]]; then
45-
echo "::error::No deployment name (_name) found in spack manifest reserved definitions"
46-
exit 1
47-
fi
48-
49-
version=$(yq "._version" <<< "$reserved_definitions")
50-
if [["$version" == "null" ]]; then
51-
echo "::error::No deployment version (_version) found in spack manifest reserved definitions"
52-
exit 1
53-
fi
37+
- name: Get reserved definitions
38+
id: defs
39+
env:
40+
PYTHONPATH: ${{ github.workspace }}/getter-script
41+
shell: python
42+
run: |
43+
from scripts.spack_manifest.getter import ReservedDefinitions
44+
import os
5445
55-
echo "Given reserved definitions:"
56-
echo "$reserved_definitions"
57-
echo "We have extracted name: $name, and version: $version"
46+
defs = ReservedDefinitions.from_file("${{ steps.script.outputs.pwd }}/${{ inputs.spack-manifest-path }}")
47+
name = defs.get("name")
48+
version = defs.get("version")
5849
59-
echo "name=$name" >> $GITHUB_OUTPUT
60-
echo "version=$version" >> $GITHUB_OUTPUT
50+
with open(os.environ['GITHUB_OUTPUT'], 'a') as o:
51+
o.write(f"name={name}\n")
52+
o.write(f"version={version}\n")

0 commit comments

Comments
 (0)